“服务器应该支持 SSL,但未配置证书 [提示:SSLCertificateFile]”错误

“服务器应该支持 SSL,但未配置证书 [提示:SSLCertificateFile]”错误

最近将 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 正确配置。

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

答案1

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

解决方案 1:降级到最新稳定版本

解决方案 2:编辑listen.conf

替换Listen *:443(或Listen 443根据您的设置)Listen *:443 http

信用

答案2

我也遇到了同样的问题,但对我有用的方法非常简单

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

将 ssl_module 下的“Listen 443”更改为“Listen 443 http”

答案3

另一个解决方案是确保所有 :443 vhosts 都包含 TLS 配置。

这个问题最近在 Debian wheezy 中引入我从中得到了解决方案http://blog.noizeramp.com/2010/10/03/apache-2-and-ssl-configuration/

相关内容