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