更新:现在Chrome 为我拒绝了这个网站。
似乎信任只是缓存在某个地方?
我想这个问题并不像我想象的那么有趣,但如果有人能澄清它会很好。
原始问题:
我禁用了自动证书更新,删除了根证书,并重新启动了我的计算机。
然而 Chrome 仍然信任来自该站点的证书,即使 Windows 发现它无法验证!
为什么会发生这种情况?截屏:
似乎信任只是缓存在某个地方?
我想这个问题并不像我想象的那么有趣,但如果有人能澄清它会很好。
我禁用了自动证书更新,删除了根证书,并重新启动了我的计算机。
然而 Chrome 仍然信任来自该站点的证书,即使 Windows 发现它无法验证!
为什么会发生这种情况?截屏:
星号:我没有这个问题的答案。我能够重现 OP 的场景,我只是对 可能发生的事情有所了解。
我首先对浏览器如何验证证书进行了一些基本的研究。看起来当站点提供 SSL 证书并且证书路径的顶部不是信任库中的根 CA 时,其他机制似乎正在发挥作用。基于服务器的证书验证协议 (SCVP) 似乎是一种机制弥合信任链中的这个“差距”。关于 SCVP的维基百科文章似乎说了以下内容 -
CAPI 能够使用安装在 Windows 证书存储中或由依赖方应用程序提供的任何证书来构建证书路径。例如,Equifax CA 证书作为受信任证书安装在 Windows 中。如果 CAPI 知道 ACME Co CA 证书,或者如果它包含在签名的电子邮件中并通过 Outlook 提供给 CAPI,CAPI 可以创建上面的证书路径。但是,如果 CAPI 找不到 ACME Co CA 证书,则无法验证 Joe 用户是否可信。SCVP 为我们提供了一个基于标准的客户端-服务器协议,用于使用委托路径发现或 DPD 解决此问题。使用 DPD 时,依赖方会向服务器询问满足其需求的证书路径。
注意:CAPI 代表加密应用程序编程接口。更多细节在 Wiki 文章中。
我在黑暗中刺伤:当 Windows 证书存储中不再存在根证书时,Chrome 正在使用 SCVP(或类似的)来验证证书。现在,有可能我错了,SCVP 纯粹是针对像OCSP这样的证书吊销机制,但我认为不仅仅是因为Chrome 在 2012 年禁用了 OSCP,而且可能不使用 SCVP 进行吊销检查。