在最近将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
报告了正确的证书。
所有站点都托管在端口443上的相同IP地址上。事实是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正确配置。
问题很明显:如何解决?