无法切换 Apache 以使用新的 SSL 证书

Bri*_*ter 2 ssl ssl-certificate apache-2.2

我目前有一个运行 Ubuntu Linux 和 Apache 2.0 的网站,该网站使用 GoDaddy 颁发的 SSL 证书。由于我通常对 GoDaddy 不感兴趣,因此我决定从其他供应商处获取 SSL 证书,但在尝试更改我的 Apache 配置以使用新证书时遇到了问题。

我的原始 Apache 配置的 SSL 设置如下所示:

SSLEngine on
SSLProtocol all
SSLCertificateFile /etc/apache2/ssl/store.fatcatsoftware.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/fatcatstore.key
SSLCertificateChainFile /etc/apache2/ssl/gd_intermediate_bundle.crt
SSLProxyEngine on
Run Code Online (Sandbox Code Playgroud)

我安装了新的 SSL 证书并将 Apache 更改为以下内容:

SSLEngine on
SSLProtocol all
SSLCertificateFile /etc/apache2/ssl_geotrust/store.fatcatsoftware.com.crt
SSLCertificateKeyFile /etc/apache2/ssl_geotrust/store.fatcatsoftware.com.key
SSLProxyEngine on
Run Code Online (Sandbox Code Playgroud)

我已经对所有路径进行了两次和三次检查,它们都是正确的。但是,当我重新启动 Apache 并尝试加载网站时,我收到来自 Web 浏览器的错误消息,指出证书是由未知机构签署的。不过,真正奇怪的部分是它还说证书是由 GoDaddy 颁发的,所以 Apache 甚至没有以某种方式使用新证书,即使配置文件指向它。我什至使用openssl x509 -noout -text -in server.crt再次检查了证书文件,它验证了该路径上的证书确实是新安装的证书。

作为进一步的测试,我尝试使用相同的证书/密钥文件并将它们安装在我自己运行 OS X 的机器上。我像在实际服务器上一样设置了 Apache 配置文件,并编辑了 /etc/hosts 以便键入在我的域名中会重定向到 localhost,以避免在加载站点时出现域名不匹配。当我尝试该设置时,一切正常!所以看起来证书本身并没有错。

两种设置之间唯一的主要区别是 a) OS X 机器有 Apache 2.2 而不是 2.0,b) 在网站上,Apache 充当在幕后运行 Rails 应用程序的 mongrel 集群的代理,而我没有在我的 OS X 机器上没有任何设置。我已经浏览了我能找到的所有杂种/Rails 设置,但没有找到任何似乎与 SSL 相关的内容。据我所知,只有 Apache 负责处理 SSL 部分。

在这一点上,我完全被难住了。我唯一能想到的是某处某处缓存了一些东西,但如果我能找到它,那就见鬼去吧。我什至尝试关闭 Apache 中的 SSLSessionCache,但这没有任何区别。有人对尝试新事物有什么建议吗?

Ale*_*vic 6

三重检查您在配置文件中的某处没有另一个使用旧证书的虚拟主机。特别是检查各种包含目录(/etc/apache.d),您可能已经在其中配置了虚拟主机并忘记了它。