7 votos

Configuración de Apache con hosts virtuales y SSL en una red local

Estoy tratando de configurar mi local de configuración de Apache, así:

http://localhost/ debe servir ~/

http://development.somedomain.co.nz/ debe servir ~/sites/development.somedomain.co.nz/

https://development.assldomain.co.nz/ debe servir ~/sites/development.assldomain.co.nz/

Yo sólo desea permitir las conexiones desde nuestra red local (192.168.1.* la gama) y yo (127.0.0.1).

Tengo el programa de instalación de mi archivo hosts con:

127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost 
fe80::1%lo0 localhost
127.0.0.1 development.somedomain.co.nz
127.0.0.1 development.assldomain.co.nz
127.0.0.1 development.anunuseddomain.co.nz

Mi configuración de Apache se ve así:

Listen 80

NameVirtualHost *:80

<VirtualHost development.somedomain.co.nz:80>
    ServerName development.somedomain.co.nz
    DocumentRoot "~/sites/development.somedomain.co.nz"
    DirectoryIndex index.php
    <Directory ~/sites/development.somedomain.co.nz>
        Options Indexes FollowSymLinks ExecCGI Includes
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost localhost:80>
    DocumentRoot "~/"
    ServerName localhost
    <Directory "~/">
        Options Indexes FollowSymLinks ExecCGI Includes
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<IfModule mod_ssl.c>
    Listen *:443
    NameVirtualHost *:443
    AcceptMutex flock
    <VirtualHost development.assldomain.co.nz:443>
        ServerName development.assldomain.co.nz
        DocumentRoot "~/sites/development.assldomain.co.nz"
        DirectoryIndex index.php
        SSLEngine on
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
        SSLCertificateFile /Applications/XAMPP/etc/ssl.crt/server.crt
        SSLCertificateKeyFile /Applications/XAMPP/etc/ssl.key/server.key
        BrowserMatch ".*MSIE.*" \
                 nokeepalive ssl-unclean-shutdown \
                 downgrade-1.0 force-response-1.0
        <Directory ~/sites/development.assldomain.co.nz>
            SSLRequireSSL
            Options Indexes FollowSymLinks ExecCGI Includes
            AllowOverride All
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>

</IfModule>

http://development.somedomain.co.nz/ http://localhost/ y https://development.assldomain.co.nz/ trabajo fino.

El problema es cuando solicito http://development.anunuseddomain.co.nz/ o http://development.assldomain.co.nz/ responde con el mismo http://development.somedomain.co.nz/

Yo lo quiero para denegar todas las solicitudes que no coinciden con un virtual host y el nombre del servidor que todas las solicitudes https host que son solicitados con http

PS yo estoy usando XAMPP en Mac OS X 10.5.8

7voto

Sean Lewis Puntos 76

Nombre de host virtual no es compatible con SSL hosting virtual basado en nombres.

El problema deriva del hecho de que el servidor está cifrada en la solicitud SSL. Por lo tanto, cuando el servidor recibe una solicitud de "somedomainname" o lo que sea, se va de forma predeterminada, el nombre de un VHost que no está en 443.

Solución:

  • Pon tu liseners fuera de tu VHost definiciones
  • Cambio :443 a una dirección IP. El servidor realiza las búsquedas de DNS inversas automáticamente.

Corregido:

# Listen :80
Listen *:80
# Listen on IP Address for :443
Listen 127.0.0.1:443

<VirtualHost development.somedomain.co.nz:80>
   ServerName development.somedomain.co.nz
   DocumentRoot "~/sites/development.somedomain.co.nz"

   DirectoryIndex index.php

   # Stay consistent with your syntax definitions. This and the 443 Vhost Directory
   # were not Quoted. That's not to say it makes a difference guaranteed,
   # but it's always a good habit. 
   <Directory "~/sites/development.somedomain.co.nz">
       Options Indexes FollowSymLinks ExecCGI Includes
       AllowOverride All
       Order allow,deny
       Allow from all
   </Directory>
</VirtualHost>

<VirtualHost localhost:80>
   ServerName localhost
   DocumentRoot "~/"

   <Directory "~/">
      Options Indexes FollowSymLinks ExecCGI Includes
      AllowOverride All
      Order allow,deny
      Allow from all
   </Directory>
</VirtualHost>

<IfModule mod_ssl.c>

   # Does this need to exist outside of the VHost Definition ?? 
   AcceptMutex flock

   <VirtualHost 127.0.0.1:443>
       ServerName development.assldomain.co.nz
       DocumentRoot "~/sites/development.assldomain.co.nz"
       DirectoryIndex index.php
       SSLEngine on
       SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
       SSLCertificateFile /Applications/XAMPP/etc/ssl.crt/server.crt
       SSLCertificateKeyFile /Applications/XAMPP/etc/ssl.key/server.key
       BrowserMatch ".*MSIE.*" \
             nokeepalive ssl-unclean-shutdown \
             downgrade-1.0 force-response-1.0

       <Directory "~/sites/development.assldomain.co.nz">
           SSLRequireSSL
           Options Indexes FollowSymLinks ExecCGI Includes
           AllowOverride All
           Order allow,deny
           Allow from all
       </Directory>
   </VirtualHost>

</IfModule>

2voto

moo Puntos 158

Cuando apache cant mactch vhost se abre la de por defecto. Siempre hay un defecto, si no se define explícitamente es la primera vhost definición en el archivo de configuración.

Usted puede utilizar httpd-S para comprobar cuáles son su defecto vhosts

Y se puede definir por defecto y prohibir el acceso a ella si le gusta como defraagh señaló

1voto

François Feugeas Puntos 1065

Añadir un defecto VirtualHost al final de su archivo para la captura de solicitudes dirigidas a los hosts que no explícitamente especificar :

 <VirtualHost _default_:*>
    DocumentRoot /~/void
    ...
 </VirtualHost>

0voto

jeffatrackaid Puntos 3359

En el virtual host de la directiva:

<VirtualHost localhost:80>

Trate de usar la IP en lugar.

<VirtualHost 127.0.0.1:80>

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: