Dopo aver recentemente aggiornato Apache2 alla versione 2.2.31 ho riscontrato uno strano comportamento nell'impostazione SSL VirtualHost.
Alcuni dei siti Web che sto ospitando mostravano il certificato per l'host predefinito anche se il client era a Server Name Identificationconoscenza, e questo è accaduto solo con alcuni di essi. Questo si presenta come il comune avviso di passaporto di Firefox / Chrome sul fatto che potresti essere truffato se stai navigando nel tuo home banking, ma semplicemente non è stato così.
Per essere chiari, se il server host.hostingdomain.orgha il proprio SSL, tentando di accedere al https://www.hostedsite.orgcertificato dei rapporti host.hostingdomain.org, ma alcuni hanno https://www.hostedsite.meriportato il certificato corretto.
Tutti i siti sono ospitati sullo stesso indirizzo IP, sulla porta 443. La verità è che VirtualHosting funziona sul lato HTTP e reindirizza automaticamente i client compatibili con SNI su SSL, quindi è retrocompatibile con i client SNI ignari.
L'esame dei log degli errori per i VirtualHosts offensivi ha mostrato il testo seguente
[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 in effetti il vhost è stato correttamente configurato con SSLCertificateFile.
La domanda è ovvia: come risolverlo?