Depois de atualizar recentemente o Apache2 para a versão 2.2.31, encontrei um comportamento estranho na configuração SSL VirtualHost.
Alguns dos sites que estou hospedando exibiam o certificado para o host padrão, mesmo que o cliente fosse Server Name Identification
aware, e isso aconteceu apenas com alguns deles. Isso mostra como o aviso do passaporte do Firefox / Chrome sobre você ser possivelmente enganado se estiver navegando em seu home banking, mas isso simplesmente não era o caso.
Para esclarecer, se o servidor host.hostingdomain.org
tiver seu próprio SSL, tentando acessar https://www.hostedsite.org
relatórios certificado para 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 do HTTP e redireciona os clientes SNI para SSL automaticamente, portanto, é compatível com os clientes que desconhecem o SNI.
Examinando logs de erros para os VirtualHosts ofensivos mostrados no 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 o SSLCertificateFile.
A questão é óbvia: como consertar isso?