“服务器应该是SSL感知的,但没有configuration证书”错误

在最近将Apache2升级到版本2.2.31之后,我在SSL VirtualHost安装程序中发现了一个奇怪的行为。

我正在托pipe的一些网站显示了默认主机的证书,即使客户端是“ Server Name Identification ,也只有其中的一些。 这显示为常见的Firefox / Chrome的护照 – 警告如果您正在浏览您的家庭银行业务,您可能会被诈骗,但事实并非如此。

要清楚的是,如果服务器host.hostingdomain.org有自己的SSL,试图访问https://www.hostedsite.org报告host.hostingdomain.org证书,但一些https://www.hostedsite.me报告正确的证书。

所有站点都托pipe在相同的IP地址上,端口443.事实是VirtualHosting在HTTP端工作,并自动将SNI感知的客户端redirect到SSL,因此它向后兼容SNI-unaware客户端。

检查有问题的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) 

事实上,虚拟主机已经正确configuration了SSLCertificateFile。

问题很明显:如何解决这个问题?

碰巧它可能是最新版本的Apache中的一个错误。

解决scheme1:降级到最新的稳定

解决scheme2:编辑listen.conf

Listen *:443 (或根据您的设置Listen 443 )replace为Listen *:443 http

信用

我有同样的确切问题,对我来说,工作简单得令人难以置信

编辑/etc/apache2/ports.conf(对于ubuntu或httpd.conf)

在ssl_module下改变“Listen 443”到“Listen 443 http”

另一个解决scheme是确保所有的:443虚拟主机都包含TLSconfiguration。

这个问题最近在Debian中引入了喘息 ,我从http://blog.noizeramp.com/2010/10/03/apache-2-and-ssl-configuration/获得了解决scheme。