对于域 example.com 上的 SSL 证书,一些测试告诉我,证书链不完整,并且由于 Firefox 保留了自己的证书存储,因此它可能会在 Mozilla 上失败(1,2,3)。其他人告诉我这很好,Firefox 36 也是如此,它告诉我证书链没有问题。
更新:我在 Windows XP 和 MacOS X Snow Leopard 上对 Opera、Safari、Chrome 和 IE 进行了测试,它们都运行良好。只有在这两个操作系统上的 Firefox < 36 上才会失败。我没有权限在 Linux 上进行测试,但对于这个网站来说,访问者不到 1%,而且大多数可能是机器人。所以,这回答了最初的问题“这个设置是否会在 Mozilla Firefox 中发出警告”和“这个 SSL 证书链是否损坏?”。
因此,问题是我如何找出需要将哪些证书放入 ssl.ca 文件中,以便 Apache 可以为它们提供服务,从而防止 Firefox <36 出现故障?
PS:顺便提一下,我用来测试证书的 Firefox 36 是全新安装的。它不可能没有报错,因为它有在上次访问使用相同链条的网站时下载了中间证书。
答案1
该链是否足够取决于客户端的 CA 存储。Firefox 和 Google Chrome 似乎已在 2014 年底包含了“COMODO RSA 认证机构”的证书。对于 Internet Explorer,它可能取决于底层操作系统。CA 可能尚未包含在非浏览器(即爬虫、移动应用程序等)使用的信任存储中。
无论如何,这条链条并不完全正确,从以下情况可以看出:SSLLabs 报告:
- 一条信任路径需要浏览器信任新的 CA。在这种情况下,您仍然会发送错误的新 CA,因为受信任的 CA 必须是内置的,而不是包含在链中。
- 另一条信任路径不完整,即需要额外下载。一些浏览器(如 Google Chrome)会进行此下载,而其他浏览器和非浏览器则希望所有必要的证书都包含在已发送的链中。因此,大多数未内置新 CA 的浏览器和应用程序都无法访问此网站。