Como configurar o SSL para o host virtual

1

Estou tendo problemas para configurar o SSL em hosts virtuais. A configuração funciona muito bem em sites não seguros. E quero que funcione com sites SSLEnabled.

Meu httpd-vhosts.conf está abaixo:

NameVirtualHost 127.0.0.1
<IfModule mod_rewrite.c>
    RewriteEngine On

    # Redirect /binDebug folder to https
    RewriteCond %{HTTPS} !=on
    RewriteCond %{REQUEST_URI} binDebug
    RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]
</IfModule>

        <VirtualHost localhost>
            ServerName localhost
            DocumentRoot "C:\xampp\htdocs"
            DirectoryIndex index.php index.html

            <Directory "C:\xampp\htdocs">            
                AllowOverride All
            </Directory>
        </VirtualHost>


        <VirtualHost virtual.c7beta.com>
            ServerName virtual.c7beta.com
            DocumentRoot "C:\Users\zee\Documents\Flex Builder 3\CLOUD\bin-debug"
            DirectoryIndex index.php index.html
             Alias /binDebug "C:\Users\zee\Documents\Flex Builder 3\CLOUD\bin-debug/"
            <Directory "C:\Users\zee\Documents\Flex Builder 3\CLOUD\bin-debug">
                Options Indexes FollowSymLinks Includes ExecCGI
                AllowOverride All
                Order allow,deny
                Allow from all
    #   SSLRequireSSL

            </Directory>
        </VirtualHost>

        <VirtualHost virtual.app.c7beta.com>
            ServerName virtual.app.c7beta.com
            DocumentRoot "C:\development\app_server\httpdocs"
            DirectoryIndex index.php index.html

            <Directory "C:\development\app_server\httpdocs">
                Options Indexes FollowSymLinks Includes ExecCGI
                AllowOverride All
                Order allow,deny
                Allow from all
    #   SSLRequireSSL

            </Directory>
        </VirtualHost>

        <VirtualHost virtual.s1.c7beta.com>
            ServerName virtual.s1.c7beta.com
            DocumentRoot "C:\development\storage_server\httpdocs"
            DirectoryIndex index.php index.html

            <Directory "C:\development\storage_server\httpdocs">
                Options Indexes FollowSymLinks Includes ExecCGI
                AllowOverride All
                Order allow,deny
                Allow from all
    #   SSLRequireSSL

            </Directory>
        </VirtualHost>

Neste momento, o SSLRequiesSSL é comentado. Alguém pode verificar isso e me dizer quais alterações devo fazer para usar https, exatamente como o http estava funcionando.

Eu fiz as alterações de configuração sugeridas por: link e parece que está funcionando bem. Mas ainda quando eu digito com meu servername.com ele redireciona para servername.com/xampp

Por favor ajude Zeeshan

    
por Zeeshan Rang 12.01.2010 / 22:09

2 respostas

1

Certifique-se de colocar números de porta após a linha do VirtualHost foo.bar, por exemplo.

<VirtualHost Virtual.app.c7beta.com:443>
...
</VirtualHost>

<VirtualHost Virtual1.app.c7beta.com:80>
....
</VirtualHost>

Isso é feito pela documentação de configuração do apache para configurar servidores SSL virtuais.

    
por 12.01.2010 / 22:31
2

O certificado SSL é apresentado ao navegador durante a negociação SSL, o que acontece antes de a camada do protocolo HTTP ser iniciada e o cabeçalho Host: ser enviado para o servidor, informando qual site é desejado.

Você tem duas opções:

  1. Use um certificado válido para vários hosts, por meio de aliases subjectAltName (ou um globo oculto)
  2. Use TLS ServerNameIndication para também enviar o hostname do servidor desejado durante a configuração SSL / TLS

1 é fácil, se você puder lidar com uma autoridade de certificação para obter tal certificado. 2 requer que o cliente e o servidor suportem o TLS, que o cliente suporte o SNI (que significa um navegador muito moderno) e que o servidor o suporte, o que, para o Apache, significa que os patches são necessários. Consulte o link para patches.

    
por 12.01.2010 / 22:32