SSL causando o mesmo conteúdo em vários domínios [duplicado]

1

Eu configurei um servidor Debian LAMP onde hospedo vários sites. Tanto quanto eu sei, eu só posso usar SSL em um deles, se eu gostaria de usar SSL em dois ou mais sites eu teria que adicionar outro IP - até aí tudo bem.

O problema é que sempre que digito https://siteone.com ou https://sitetwo.com , ele sempre exibe o conteúdo de: https://siteone.com . Eu prefiro exibir alguma mensagem de erro ou outra coisa, mas absolutamente não exibir o conteúdo do meu site principal (que é onde eu quero que o SSL funcione).

Nota: meu servidor web Debian usa o ispconfig como seu painel de controle.

    
por spacebiker 08.03.2013 / 02:31

4 respostas

2

Certifique-se de ter seus anfitriões virtuais configurados corretamente, de forma que cada host virtual se ligue apenas a um único endereço IP. A documentação do Apache para hospedagem virtual baseada em IP diz que seus hosts virtuais devem ser semelhantes aos seguinte:

<VirtualHost 192.168.0.1:443>
ServerAdmin [email protected]
DocumentRoot /groups/smallco/www
ServerName smallco.example.com
ErrorLog /groups/smallco/logs/error_log
TransferLog /groups/smallco/logs/access_log
</VirtualHost>

<VirtualHost 192.168.0.2:443>
ServerAdmin [email protected]
DocumentRoot /groups/baygroup/www
ServerName baygroup.example.com
ErrorLog /groups/baygroup/logs/error_log
TransferLog /groups/baygroup/logs/access_log
</VirtualHost>

O primeiro host vitual listado em sua configuração do apache é o padrão. Adicione um falso antes dos dois primeiros apenas para garantir que você está realmente combinando seus hosts virtuais, e não apenas cegamente caindo no primeiro. Aqui está um artigo mais completo sobre essa configuração da IBM: link

    
por 08.03.2013 / 03:27
2
por 08.03.2013 / 02:36
2

Se o conselho de Stephen não estiver funcionando bem para você, certifique-se de que você também tenha a seguinte linha no seu arquivo de configuração do Apache:

NameVirtualHost *:443

Além disso, a FRB está certa. Você pode ter SSL em quantas dessas máquinas virtuais desejar. Basta colocar as informações de configuração SSL dentro do bloco de código <VirtualHost></VirtualHost> .

Algo parecido com isso (observe também que não é necessário vincular-se a IPs específicos ao usar hosts nomeados):

## SSL (HTTPS) PORT 443
Listen 443
NameVirtualHost *:443

LoadModule ssl_module modules/mod_ssl.so
SSLPassPhraseDialog  builtin
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
SSLMutex default
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin

<VirtualHost *:443>
  ServerName host1.com

  SSLEngine on
  SSLOptions +StrictRequire
  SSLProtocol -all +TLSv1 +SSLv3
  SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
  SSLCertificateFile    /etc/httpd/ssl/host1.crt
  SSLCertificateKeyFile /etc/httpd/ssl/host1.key
  SSLVerifyClient none
  SSLProxyEngine off

  SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
  CustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

  DocumentRoot /var/www/host1/

  <Directory "/var/www/host1/">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order Allow,deny
    Allow from all
  </Directory>

</VirtualHost>


<VirtualHost *:443>
  ServerName host2.com

  SSLEngine on
  SSLOptions +StrictRequire
  SSLProtocol -all +TLSv1 +SSLv3
  SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
  SSLCertificateFile    /etc/httpd/ssl/host2.crt
  SSLCertificateKeyFile /etc/httpd/ssl/host2.key
  SSLVerifyClient none
  SSLProxyEngine off

  SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
  CustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

  DocumentRoot /var/www/host2/

  <Directory "/var/www/host2/">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order Allow,deny
    Allow from all
  </Directory>

</VirtualHost>
    
por 08.03.2013 / 10:13
1

Você pode realmente fazer vários sites SSL no mesmo endereço IP, sem usar o SNI. A captura (primária) é que você deve estar usando o mesmo certificado, que deve ter todos os domínios necessários como Nomes Alternativos de Assunto. (Isso aumentará o custo do certificado.) A implicação é que todos os sites são para a mesma organização.

O Apache2 manipula o SSL em duas fases. A primeira fase envolve a verificação de uma instrução "SSLEngine on" no bloco de virtualhost padrão (primeiro) para o endereço IP e, em seguida, iniciar a conexão SSL. A segunda fase envolve a verificação das diretivas ServerName / ServerAlias até que o virtualhost correto seja identificado.

Assim, você não precisa duplicar as diretivas SSL * em cada host virtual, mas isso ajuda a chamar a atenção das pessoas para o fato de ser um site SSL. (Caso contrário, eles teriam que notar o número da porta.)

A captura secundária é que haverá um aviso adicionado ao error_log toda vez que o Apache for iniciado.

    
por 09.03.2013 / 18:03