Após atualizar recentemente o Apache2 para a versão 2.2.31, encontrei um comportamento estranho na configuração do SSL VirtualHost.
Alguns dos sites que estou hospedando estavam mostrando o certificado para o host padrão, mesmo que o cliente estivesse Server Name Identification
ciente, e isso aconteceu apenas com alguns deles. Isso mostra como o aviso de passaporte comum do Firefox / Chrome sobre você ser possivelmente enganado se estiver navegando no seu home banking, mas esse simplesmente não foi o caso.
Para ficar claro, se o servidor host.hostingdomain.org
tiver seu próprio SSL, tentando acessar o https://www.hostedsite.org
certificado de relatórios host.hostingdomain.org
, mas alguns https://www.hostedsite.me
relataram o certificado correto.
Todos os sites são hospedados no mesmo endereço IP, na porta 443. A verdade é que o VirtualHosting funciona no lado HTTP e redireciona automaticamente os clientes compatíveis com SNI para SSL, portanto, é compatível com os clientes que não conhecem SNI.
Examinando logs de erro para os VirtualHosts ofensivos, mostrados o texto a seguir
[Tue Dec 25 16:02:45 2012] [error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/path/to/www.site.org.conf:20)
e, de fato, o vhost foi configurado corretamente com SSLCertificateFile.
A questão é óbvia: como consertar isso?