Múltiplo SSL - um para cada domínio no mesmo servidor Apache?

1

Sou um linux newb. Estou configurando meu próprio servidor LAMP em um VPS pela primeira vez. Tudo correu bem até agora. Eu estou hospedando vários domínios no meu VPS que só tem um endereço IP (isso é chamado de hospedagem virtual baseada em nome?).

Dois dos sites do meu VPS, bikestore.com e toystore.com, acabarão se tornando websites de comércio eletrônico que aceitam informações de cartão de crédito. Eu estou no processo de habilitar uma versão https para ambos os sites, então eu comprei um novo endereço IP para cada um.

Estou seguindo este guia para instalar certificados SSL: link

Ao criar um / etc / apache2 / sites-available / bikestore-ssl e / etc / apache2 / sites-available / toystore-ssl, a Apache saberá que link deve referenciar o endereço IP 1.1.1.1 com o certificado ssl bikestore.crt e o link deve referenciar o endereço IP 2.2.2.2 com o toystore ssl certificate .crt?

Ao inspecionar o conteúdo do bikestore-ssl e toystore-ssl, não está claro para mim como o apache saberá qual arquivo * -ssl designar para qual domínio https: //. Então, espero que alguém aqui possa explicar o que está acontecendo e se estou fazendo as coisas corretamente.

Obrigado

    
por John 11.12.2009 / 17:58

2 respostas

2

O Apache ignora os nomes dos arquivos, você deve definir os endereços IP nas definições do Host Virtual. Por exemplo, para o meu site, pupeno.com, tenho:

<IfModule mod_ssl.c>
    <VirtualHost 97.107.141.29:443>
        ServerName pupeno.com
        DocumentRoot /var/www/pupeno.com
        CustomLog /var/log/apache2/access-pupeno.com.log combined
        SSLEngine On
        SSLCertificateFile /etc/ssl/certs/pupeno.com.pem
        SSLCertificateKeyFile /etc/ssl/private/pupeno.com.pem
        #SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire
    </VirtualHost>
</IfModule>

Além disso, não há motivos para ter arquivos separados. Eu tenho um arquivo pupeno.com.conf que inclui a definição para hosts virtuais não-ssl e ssl pupeno.com. Pense no que você deseja ativar e desativar de uma só vez com o a2ensite e o a2dissite. Eu considero link e link a mesma coisa, portanto, é no pupeno.com .conf.

    
por 11.12.2009 / 18:01
1

Essencialmente, o Apache escolhe qual VirtualHost será exibido de acordo com as entradas de endereço IP, nome do servidor e ServerAlias. Para o SSL sans-TLS, é suficiente simplesmente se preocupar com o endereço IP, já que você está atribuindo a cada VirtualHost um IP exclusivo. Cada VirtualHost pode ter uma diretiva "SSLCertificateFile" exclusiva.

A configuração mais mínima que você precisa é:

<VirtualHost IP1:443>
SSLEngine On
SSLCertificateFile IP1.pem
</VirtualHost>

<VirtualHost IP2:443>
SSLEngine On
SSLCertificateFile IP2.pem
</VirtualHost>

Provavelmente, você gostaria de lançar uma regra DocumentRoot, mod_proxy ou mod_rewrite nela. Por exemplo:

<VirtualHost IP1:443>
SSLEngine On
SSLCertificateFile IP1.pem

# points to a local directory
DocumentRoot /var/www/
</VirtualHost>

<VirtualHost IP2:443>
SSLEngine On
SSLCertificateFile IP2.pem

# transparently serves the content off another webpage.
RewriteEngine On
RewriteRule ^/?(.*) http://www.non-secure-site.com/$1 [P]
</VirtualHost>
    
por 11.12.2009 / 18:40