После недавнего обновления 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.
Вопрос очевиден: как это исправить?
источник
У меня была точно такая же проблема, и то, что сработало для меня, было невероятно простым
отредактируйте /etc/apache2/ports.conf (для Ubuntu или httpd.conf)
измените «Listen 443» на «Listen 443 http» под ssl_module
источник
Другим решением для этого является обеспечение того, чтобы все ваши: 443 vhosts включали конфигурацию TLS.
Эта проблема была недавно представлена в Debian wheezy, и я получил решение с http://blog.noizeramp.com/2010/10/03/apache-2-and-ssl-configuration/ .
источник
httpd.conf
но не смог включить строки, указывающие конфигурацию TLS. Добавление различных настроек TLS обратно (SSLEngine, SSLCipherSuite, SSLCertificateFile и SSLCertificateKeyFile) устранило проблему.