Po niedawnej aktualizacji Apache2 do wersji 2.2.31 znalazłem dziwne zachowanie w konfiguracji SSL VirtualHost.
Niektóre witryny, które hostuję, pokazywały certyfikat dla domyślnego hosta, nawet jeśli klient był tego Server Name Identification
świadomy, a stało się tak tylko z kilkoma z nich. Widoczne jest to jako powszechne ostrzeżenie paszportowe przeglądarki Firefox / Chrome o możliwym oszustwie podczas przeglądania bankowości domowej, ale po prostu tak nie było.
Żeby było jasne, jeśli serwer host.hostingdomain.org
ma własny protokół SSL, próbuje uzyskać dostęp do https://www.hostedsite.org
raportu o certyfikacie host.hostingdomain.org
, ale kilku https://www.hostedsite.me
zgłosiło poprawny certyfikat.
Wszystkie witryny są hostowane pod tym samym adresem IP na porcie 443. Prawda jest taka, że VirtualHosting działa po stronie HTTP i automatycznie przekierowuje klientów obsługujących SNI na SSL, więc jest wstecznie kompatybilny z klientami nieświadomymi SNI.
Podczas sprawdzania dzienników błędów dla szkodliwych hostów wirtualnych pokazano następujący tekst
[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)
i faktycznie vhost został poprawnie skonfigurowany z SSLCertificateFile.
Pytanie jest oczywiste: jak to naprawić?