Firefox 未加载证书链

Firefox 未加载证书链

lighttpd/1.4.28 (ssl)我在 Debian Squeeze 上运行。我刚刚创建了一个http://startssl.com证书,我在我的所有浏览器(Firefox、Chrome、Opera)上运行良好,但我的用户在 Firefox 中报告证书错误。我已经将其归结为证书链加载失败:

我的 Firefox 上的证书:https://i.stack.imgur.com/moR5x.png
其他 Firefox 上的证书:https://i.stack.imgur.com/ZVoIu.png(请注意这里缺少的 StartCOM 证书)

我按照本教程将证书嵌入到我的 lighttpd 中:https://forum.startcom.org/viewtopic.php?t=719

我的 lighttpd.conf 的相关部分如下所示:

$SERVER["socket"] == ":443" {
        ssl.engine = "enable"
        ssl.ca-file = "/etc/lighttpd/certs/ca-bundle.pem"
        ssl.pemfile = "/etc/lighttpd/certs/www.bisaboard.crt"
}

ca-bundle.pem 的创建方式如下:cat ca.pem sub.class1.server.ca.pem > ca-bundle.pem
我从这里获取了相关文件:http://www.startssl.com/certs/

www.bisaboard.crt 的创建方式如下:cat certificate.pem ssl.key > www.bisaboard.crt
其中 certificate.pem 是我的 StartSSL-Class1 证书,ssl.key 是我的 SSL-Root-Key。

您知道为什么第二个 Firefox 无法正确加载证书链吗?

答案1

您的网络服务器似乎无法正确显示中间证书,它在您自己的浏览器中运行的原因可能是因为您自己在本地下载并安装了它们。

你为什么不直接下载他们已经为你准备好的 ca 包呢http://www.startssl.com/certs/ca-bundle.crt并将其用作选项ssl.ca-file

答案2

Firefox 对整个证书链的验证非常严格,很可能您没有正确指定链中的所有证书。我最近在 Lighttpd 上使用 Firefox 和 Comodo SSL 证书时遇到了类似的问题,问题是我没有在 ssl.ca 文件中正确列出链。

根据RFC 2246发送者的证书必须放在最前面,后面的每个证书都必须直接认证前面的证书。我最终在证书链中拥有了四个证书,一直到 CA 根。

certificate_list 这是 X.509v3 证书的序列(链)。发送者的证书必须位于列表的首位。每个后续证书都必须直接认证其前一个证书。由于证书验证要求独立分发根密钥,因此可以选择性地从链中省略指定根证书颁发机构的自签名证书,前提是远程端必须已经拥有该证书才能在任何情况下对其进行验证。

答案3

我遇到了完全类似的问题:有些 Firefox 抱怨缺少证书链,但不是全部。在服务器配置中添加额外的证书链参数(以及一个接一个地包含所有证书的文件)似乎有帮助。我自己正在运行 Apache Traffic Server。

该解决方案也是 SSLhopper 在评论链接中建议的:http://www.sslshopper.com/ssl-checker.html#hostname=www.bisaboard.de

我不知道 lighttpd 配置,但可能有一个额外的参数来宣布中间证书的链文件。

答案4

昨天我更新证书后遇到了这个问题。我的所有测试设备/浏览器都可以在更新证书后正常运行,所以我开车回家了。

今天我来到办公室,我们公司/客户中有一半的人在他们的浏览器中看到了浏览器安全警告。

即使公司内部署的是相同版本的 Firefox ESR?!

我的解决方案是在服务器上使用正确有效的中间证书。

完全忘记了 StartCom 实际上存在的 SHA1 问题。

获取当前 1 类域验证的 SHA2 中级证书(就我而言):https://www.startssl.com/certs/sca.server1.crt,用它替换旧的 onesub.class1.server.ca.pem,重新启动网络服务器(我这边是 Apache),它将在所有浏览器中运行。

相关内容