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


21

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

问题很明显:如何解决?

Answers:


38

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

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

解决方案2:编辑 listen.conf

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

信用


1
感谢您指出这一点!您为我省去了很多疑惑...我想知道为什么apache让生活变得更加艰难!?
tftd

2
解决方案2:应该是httpd.conf而不是listen.conf
zzapper

1
请注意,这是我今天早晨发生的事情...最终我需要在/etc/httpd/conf.d/ssl.conf的listen lin中添加“ http”-哦,我不必降级...
斯科特,

解决方案的替代,你不若加入listen.conf需要降级
USR-本地ΕΨΗΕΛΩΝ

10

我遇到了同样的问题,而对我有用的却是非常简单的

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

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


这已经在接受的答案中。
斯文

2
可接受的答案似乎已过时。这个答案更加有用和准确。+1
Parag'Mar

此答案适用于我的apache2.4灯堆ubuntu上的apache。其他答案是“ listen.conf”-应该是ports.conf
尼克,

2

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

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


这是我的问题。我在自己的服务器上复制了一个虚拟主机,httpd.conf但未包含指定TLS配置的行。重新添加各种TLS设置(SSLEngine,SSLCipherSuite,SSLCertificateFile和SSLCertificateKeyFile)可以解决此问题。
rinogo '18 -10-12
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.