在最近将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中的一个错误。
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。