对于域 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 是全新安装的。它不可能不抱怨,因为它在之前访问使用相同链的站点期间下载了中间证书。
链是否足够取决于客户端的 CA 存储。看起来 Firefox 和 Google Chrome 已包含 2014 年底“COMODO RSA 证书颁发机构”的证书。对于 Internet Explorer,它可能取决于底层操作系统。CA 可能尚未包含在非浏览器(即爬虫、移动应用程序等)使用的信任库中。
无论如何,从SSLLabs 报告中可以看出,该链并不完全正确:
我联系了 Comodo 并从他们那里下载了一个 bundle.crt 文件。根据此服务器的设置,我将其重命名为 ssl.ca,现在证书通过了所有测试。
Chain issues = Contains anchor
通知不是问题(见下文)。SSL Labs,被广泛认为是最完整的测试,现在显示
Chain issues = Contains anchor
,而以前显示Chain issues = None
(而其他显示链有问题)。这实际上不是问题(1 , 2),除了服务器发送给客户端的额外 1kB 之外。我的结论
忽略它所说的SSL Labs
Chain issues = Contains anchor
测试或从捆绑文件中删除根证书(请参阅下面的评论)。始终在其他三个测试站点( 1、2、3)中的至少一个上运行辅助测试,以确保您的链在SSL Labs所说的情况下确实没问题。
Chain issues = None