浏览器用新的根证书替换过期的中间证书

浏览器用新的根证书替换过期的中间证书

我通过防火墙连接到特定的 Web 服务器,但是当我这样做时,防火墙会警告根证书已过期,当我绕过防火墙时,所有浏览器都看不到证书问题,当我检查链时,所有证书都没有问题。

我仔细研究了一下,发现浏览器实际上是用 Windows 证书存储中未过期的证书替换了服务器发送的过期证书。(服务器发送了四个证书链:根证书、中间证书 1、中间证书 2 和服务器证书。中间证书 1 已过期。它被浏览器/操作系统替换,并成为浏览器的根证书。这是一个 GlobalSign 证书链。)

显然它们具有相同的友好名称,并且可能具有其他类似的属性(当然公钥是相同的)。由于 IE/Chrome 也做了同样的事情,因此它看起来很像浏览器使用的一些 Windows 功能。

为什么会发生这种情况?如何更换证书?是否存在我不知道的潜在危险?

以下是浏览器查看器和数据包捕获的比较图像捕获

答案1

答案:Windows 会忽略 Web 服务器提供的 CA 证书。它只会将 Web 服务器的证书与存储在操作系统 CA 证书存储中的相应 CA 证书进行核对,操作系统会信任这些证书。如果颁发 Web 服务器证书的 CA 证书链尚未存储在操作系统的 CA 证书存储中,Windows 也有自己的方法来检索该链。有关此内容的更多详细信息,请参见此处:

仅仅访问一个网站就能将受信任的根 CA 推送到我的电脑上吗?

有些防火墙会检查 Web 服务器发送的 CA 证书,如果其中一个证书已过期,则会阻止访问。防火墙在证书方面的行为通常与 Windows 等常规操作系统不同。

我们还了解到,CA 证书可以重新颁发,并具有不同的序列号和有效期。证书将具有相同的“友好名称”和密钥对。

在此特定情况下,Web 服务器发送的是属于该链的一个 CA 证书的旧版本,防火墙检测到该证书已过期并阻止对网站的访问。当绕过防火墙时,可以访问该网站,这是因为 Windows 拥有新版本的 CA 证书并根据该证书检查 Web 服务器的证书。

相关内容