Web 浏览器是否缓存 SSL 证书?

Lor*_*ein 30 browser web ssl ssl-certificate

是否有任何 Web 浏览器缓存 SSL 服务器证书?例如,如果我更改了 Web 服务器上的 SSL 证书,所有 Web 浏览器在通过 SSL 连接时是否都会获取新证书,或者它们是否可能拥有过时的证书?

我正在考虑 SSL 证书过期并被 Web 服务器上的新证书替换的情况。

Red*_*ick 22

否。请参阅IBM SSL 概述

  1. SSL 客户端发送“客户端问候”消息,其中列出了加密信息,例如 SSL 版本,以及客户端支持的密码套件(按照客户端的优先顺序)。该消息还包含一个用于后续计算的随机字节字符串。SSL 协议允许“客户端问候”包含客户端支持的数据压缩方法,但当前的 SSL 实现通常不包含此规定。

  2. SSL 服务器以“服务器问候”消息进行响应,该消息包含服务器从 SSL 客户端提供的列表中选择的 CipherSuite、会话 ID 和另一个随机字节字符串。SSL 服务器还发送其数字证书。如果服务器需要数字证书进行客户端身份验证,则服务器会发送“客户端证书请求”,其中包括支持的证书类型列表和可接受的证书颁发机构 (CA) 的专有名称。

  3. SSL 客户端验证 SSL 服务器数字证书上的数字签名,并检查服务器选择的 CipherSuite 是否可接受。

微软的总结也是类似的。TLS握手在这方面也类似。

在第 2 步中,客户端似乎没有办法说“不要打扰发送服务器证书,我将使用我的缓存”。

请注意,有多种类型的证书:客户端、服务器和 CA。其中一些被缓存。

  • 这不是真的,并且假设由于 SSL 工作原理的概述而没有缓存是一个非常糟糕的理由。https://www.youtube.com/watch?v=wMFPe-DwULM (2认同)

tue*_*xss 15

好吧,RedGrittyBrick 的答案是正确的,但并没有真正回答问题。问题是,如果浏览器这样做,而不是他们是否应该或需要这样做。

据我所知,MSIE 和 Chrome 实际上都会缓存证书,并且只要旧版本有效,就不会在获得新版本时替换它们。他们为什么这样做我不明白,因为它降低了安全性。

  • +1 [StartSSL混合SHA1/SHA2链惨败](https://forum.startcom.org/viewtopic.php?f=15&t=15929&start=0&st=0&sk=t&sd=a&sid=c5cc5782c93461824941c200e141b5f)后,很清楚&view=printf Windows 上的 Chrome 确实在缓存中间证书,可能是无限期的。Chrome 将忽略服务器发送的任何新的中间证书。目前尚不清楚缓存是由服务器证书的身份还是中间证书的身份作为密钥,以及该身份的确切构成。 (5认同)
  • 它确实降低了它,因为你不能用新的替换旧的 SHA-1 密钥,因为旧的仍然有效,如果我理解一切正确的话,Chrome 会忽略新的。所以没有办法强制转换到更高的安全标准——所以它在相对意义上“降低”了,因为不能将它推得更高。就像通货膨胀不会降低您的货币指定价值,而是降低其实际市场价值。 (3认同)
  • 今天遇到了这个问题,chrome 和 firefox 在普通窗口(旧证书)和隐身模式(正确的)中显示不同的证书。curl 或 openssl 等命令行实用程序当然会报告正确的证书。通过清除浏览器的缓存 (ctrl+shift+del) - chrome 的“cookies 和其他站点数据”和 firefox 的“离线网站数据”来修复。 (3认同)