我从 StartSSL 购买了一些(便宜的)HTTPS 证书。它们在我测试的所有浏览器上都运行良好。根据这个帖子它们甚至在 IE 7 和 8 中也能被识别,这对我来说已经足够了。
然而,有一位用户抱怨他的 WordPress RSS 客户端/聚合器停止工作。他的网站运行的是最新版本的 Wordpress,简单派,但它不能识别 StartCom CA:
WP HTTP Error: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
我猜想他的 wordpress 网站运行在某个共享托管服务 Linux 机器上。所以现在我很好奇,Debian、Ubuntu、RHEL、Fedora、FreeBSD 等的哪些版本包含 StartCom 根证书?
答案1
主要问题似乎是您在 www.opencpu.org 上为支持 SNI(服务器名称指示)的客户端提供了正确的证书,例如在 SSL 握手中发送预期的服务器名称。但对于不使用 SNI 的客户端,您发送了 dev1.opencpu.org 的证书,该证书既不匹配名称,也不是由受信任的 CA 签名的,而是自签名的。但是,虽然当前的浏览器都支持 SNI,但有些脚本库却不支持。
因为您为使用 SNI 的客户端提供了 *.opencpu.org 的通配符证书,所以我建议直接删除 dev1.opencpu.org 证书,因为该主机名也与证书 *.opencpu.org 匹配。
让 demo.ocpu.io 也能正常工作则更加困难。此名称解析为与 opencpu.org 相同的 IP,因此不支持 SNI 的客户端会获得 dev1.opencpu.org 的自签名证书,但存在同样的问题,例如名称不匹配和不受信任的 CA。如果您需要为不支持 SNI 的客户端支持此主机名,则必须使用不同的 IP 地址。
答案2
如果您尚未将 StartSSL 中级 CA 证书添加到您的安装中,则可能会发生此错误。请参阅StartSSL 常见问题解答关于这一点,或者将中间证书添加到证书文件内的服务器证书前面(或者附加,我总是忘记哪个)。