SSL证书链是否已损坏以及如何解决?


13

有关域example.com的SSL证书,一些测试告诉我,链是不完整的,因为火狐保持其自身存储的证书,它可能会在Mozilla(失败123)。其他人告诉我这很好,Firefox 36也一样,告诉我cert链很好。

更新:我在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
不一定-在任何情况下,如果您能够回答自己的问题,都鼓励您这样做:)
BE77Y

是的,我回答了这个问题,但是重新询问如何解决而不是损坏它会更有用。这样可以吗?
盖亚2015年

1
绝对。它也使这里的答案也很相关(从发布之时起,它们是对的,对吗?)
加拿大卢克

@Gaia:啊,好的-我明白你的意思了。我并不是100%就此而言的最佳做法,但我的直觉是将您的问题更新为包括“以及如何解决?” 就您而言,根据Steffen Ullrich的答复,链中缺少“ COMODO RSA证书颁发机构”证书-您可以避免任何潜在的客户错误,但可以将其包括在链中。这只是真正被认为是不好的做法,因为它会给握手增加潜在的不必要开销-否则不会产生有害影响。
BE77Y 2015年

除上述内容外,还有一点值得注意的是,即使不是全部,大多数现代客户端也应该对当前设置完全满意(根据SSLlabs测试)
BE77Y

Answers:


8

链是否足够取决于客户端的CA存储。Firefox和Google Chrome似乎已包含2014年底的“ COMODO RSA证书颁发机构”证书。对于Internet Explorer,它可能取决于基础操作系统。CA可能尚未包含在非浏览器使用的信任库中,即爬网程序,移动应用程序等。

SSLLabs报告可以看出,无论如何链都不是完全正确的:

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

我的印象是Chrome和IE都使用Windows证书存储。您确定Chrome拥有自己的补充商店吗?
盖亚2015年

SSLlabs指出“链问题=无”,但我确实在下面看到了详细的链分析。
盖亚2015年

1
FWIW,OS X下的Chrome确实确实使用了OS证书存储@SteffenUllrich。
BE77Y 2015年

1
@Gaia:别忘了移动客户端,它们有自己的证书存储,在不同的Android版本之间可能也会有所不同。
斯特芬·乌尔里希

1
@Gaia:采用SSLLabs显示的第二条信任路径,只需添加丢失的链证书。然后,可以通过具有较新CA的浏览器和尚未具有此CA的浏览器来验证此链。
斯特芬·乌尔里希

8

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

SSL Labs被普遍认为是最完整的测试,它现在显示Chain issues = Contains anchor,而以前却没有显示Chain issues = None(而其他人则表明该链有问题)。这的确是一个不是问题的问题(12),除了一个额外1kB的服务器发送给客户端。

我的结论

  1. 忽略SSL Labs测试中所说的内容,Chain issues = Contains anchor或者从捆绑文件中删除根证书(请参阅下面的注释)。

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


2
真正包含真正的“锚” /“根”证书毫无意义。但是,您非常需要中间证书。我认为您最初没有中间证书,这导致了问题。
哈坎·林奎斯特

@HåkanLindqvist因此,我应该解密证书,找出根证书是哪一个,并将其从链中删除?
盖亚2015年

1
我建议这样做,尽管这不像缺少中间证书那么严重(这有点浪费)。首先,Qualy的SSL测试表明它02faf3e291435468607857694df5e45b68851868是不必要的。
哈坎·林奎斯特

@HåkanLindqvist使用openssl x509 -fingerprint -in ssl.cai表示文件中具有指纹的部分02faf3e291435468607857694df5e45b68851868是第一个PEM。我删除了它,现在我得到了i.imgur.com/1iG2UCz.pngi.imgur.com/m8gYbdG.png(OCSP错误:OCSP状态请求失败:6 [ ocsp.comodoca.com]
盖亚

3
您对“包含锚定”警告的结论是正确的-Security.SE上的此答案值得一读;总而言之,发送它没有任何问题:security.stackexchange.com/a/24566/7043
Chris J
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.