Після нещодавнього оновлення Apache2 до версії 2.2.31 я виявив дивну поведінку в налаштуваннях SSL VirtualHost.
Кілька веб-сайтів, на яких я розміщував, демонстрували сертифікат для хоста за замовчуванням, навіть якщо клієнт Server Name Identification
обізнаний, і це сталося лише з кількома з них. Це відображається як загальне паспортне попередження Firefox / Chrome про те, що ви, можливо, шахрайства, якщо ви переглядаєте домашній банківський бізнес, але це просто не було так.
Щоб було зрозуміло, якщо сервер host.hostingdomain.org
має власну SSL, намагаючись отримати доступ до https://www.hostedsite.org
сертифікату звітів для host.hostingdomain.org
, але декілька https://www.hostedsite.me
повідомили про правильний сертифікат.
Усі сайти розміщуються на одній і тій же IP-адресі, на порту 443. Правда полягає в тому, що VirtualHosting працює на HTTP-стороні і автоматично перенаправляє клієнтів, що знають SNI, до SSL, тому він сумісний із зворотними клієнтами, які не знають SNI.
Вивчаючи журнали помилок для порушення VirtualHosts, показано наступний текст
[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)
і насправді vhost був правильно налаштований з SSLCertificateFile.
Питання очевидне: як це виправити?