Після нещодавнього оновлення 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.
Питання очевидне: як це виправити?