此 SSL 证书链是否已损坏以及如何修复?

Gai*_*aia 13 ssl certificate https ssl-certificate certificate-authority

对于域 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 是全新安装的。它不可能不抱怨,因为它在上次访问使用相同链的站点期间下载了中间证书

Ste*_*ich 8

链是否足够取决于客户端的 CA 存储。看起来 Firefox 和 Google Chrome 已经包含了 2014 年底“COMODO RSA Certification Authority”的证书。对于 Internet Explorer,它可能取决于底层操作系统。CA 可能尚未包含在非浏览器(即爬虫、移动应用程序等)使用的信任存储中。

在任何情况下,链都不完全正确,从SSLLabs 报告中可以看出:

  • 一种信任路径需要浏览器信任新 CA。在这种情况下,您仍然会发送错误的新 CA,因为可信 CA 必须是内置的,而不是包含在链中。
  • 另一个信任路径不完整,即它需要额外下载。某些浏览器(如 Google Chrome)会执行此下载,而其他浏览器和非浏览器则希望所有必要的证书都包含在已提供的链中。因此,大多数没有内置新 CA 的浏览器和应用程序将在此站点上失败。


Gai*_*aia 8

我联系了 Comodo 并从他们那里下载了一个 bundle.crt 文件。我根据此服务器的设置将其重命名为 ssl.ca,现在证书通过了所有测试。该Chain issues = Contains anchor通知是没有问题的(见下文)。

SSL Labs被广泛认为是最完整的测试,现在显示Chain issues = Contains anchor,而以前显示Chain issues = None(而其他人则显示链有问题)。除了服务器发送给客户端的额外 1kB 之外,这实际上不是问题 ( 1 , 2 )。

我的结论

  1. 忽略SSL Labs测试,它说Chain issues = Contains anchorOR 从捆绑文件中删除根证书(请参阅下面的评论)。

  2. 始终运行其他三个考点的至少一个(在二次测试123),以确保您的链是当真的好吗SSL实验室Chain issues = None

  • 您关于“包含锚点”警告的结论是有效的 - Security.SE 上的这个答案值得一读;总之,发送它没有任何问题:http://security.stackexchange.com/a/24566/7043 (3认同)
  • 包含实际的“锚”/“根”证书真的没有意义。但是,您确实需要中级证书。我认为您最初没有中间证书,这导致了问题。 (2认同)
  • 我建议这样做,即使它不像缺少中间证书那么严重(这只是有点浪费)。Fwiw,Qualy 的 SSL 测试表明它是“02faf3e291435468607857694df5e45b68851868”,这是不必要的。 (2认同)