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 Identification
conoscenza, 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.org
ha il proprio SSL, tentando di accedere al https://www.hostedsite.org
certificato dei rapporti host.hostingdomain.org
, ma alcuni hanno https://www.hostedsite.me
riportato 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?