Configuração adequada do certificado SSL de vários domínios como VirtualHosts em vários IPs

1

Atualmente, tenho os seguintes VirtualHosts definidos.

NameVirtualHost *:80
Listen *:80

<IfModule mod_ssl.c>
Listen *:443
</IfModule>

<VirtualHost *:80>
--various directives for www--
</VirtualHost>

<VirtualHost *:443>
--same directives as *:80--
SSLEngine on
SSLCertificateFile /path/to/public.crt
SSLCertificateKeyFile /path/to/private.key
SSLCACertificateFile /path/to/intermediate.crt
SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4 
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
</VirtualHost>

<VirtualHost 192.168.1.102:80>
--various directives for another subdomain--
</VirtualHost>

<VirtualHost 192.168.1.103:80>
--various directives for another subdomain--
</VirtualHost>

<VirtualHost 192.168.1.104:80>
--various directives for another subdomain--
</VirtualHost>

<VirtualHost 192.168.1.105:80>
--various directives for another subdomain--
</VirtualHost>

<VirtualHost 192.168.1.106:443>
--various directives for another subdomain--
SSLEngine on
SSLCertificateFile /path/self/signed/certificate.pem
--same ciphers and other settings as *:443--
</VirtualHost>

<VirtualHost 192.168.1.107:80>
--various directives for another subdomain--
</VirtualHost>

<VirtualHost 192.168.1.109:80>
--various directives for another subdomain--
</VirtualHost>

Neste momento, tudo está funcionando como esperado. O principal domínio www: 80 e sua conexão segura em *: 443 funciona com uma classificação B em SSLLabs.com

Os erros são:

  1. Este servidor suporta parâmetros de troca de chaves Diffie-Hellman (DH) fracos. Classe com limite para B.
  2. O servidor não suporta o Encaminhamento para frente com os navegadores de referência.

Eu coloquei parâmetros DH personalizados após a minha chave pública, mas os parâmetros DH ainda dão um erro. Não tenho certeza de como corrigir o erro Encaminhar sigilo.

Depois que cheguei até aqui, tentei adicionar um novo VirtualHost para poder mover meus vários subdomínios que agora estão cobertos pelo nosso novo certificado para SSL.

Eu adicionei um novo VirtualHost:

<VirtualHost 192.168.1.109:443>
--Copied all directives from 192.168.1.109:80--
--Copied all SSL settings from *:443--
</VirtualHost>

A configuração parece fazer check-out quando executo o configtest. O Apache não me dá nenhuma mensagem de erro que pareça relevante quando eu reinicio o serviço (sempre são dados alguns erros de DNS, mas tudo bem, já que os IPs definidos nos VirtualHosts são IPs DMZd e não IPs públicos). No entanto, nenhum dos meus sites responde e o apache2 é exibido como interrompido. Quando apago o novo VirtualHost, o servidor volta a funcionar sem problemas.

O que estou fazendo de errado com minha configuração? Alguém pode me apontar na direção certa?

    
por Frozen Solid 06.10.2015 / 00:37

1 resposta

0

O problema era aparentemente o erro ServerName o tempo todo. Eles estão bem desde que haja apenas 1 host por IP, mas adicionar um segundo IP, mesmo que esteja em uma nova porta e, portanto, tenha um novo nome de VirtualHost, não foi suficiente para impedir que o Apache explodisse.

Eu adicionei um ServerName a cada VirtualHost, mesmo que não tenhamos precisado deles no passado, e agora o novo VirtualHost é instalado sem nenhum problema.

    
por Frozen Solid 06.10.2015 / 02:44