Windows、IE 和 Outlook 上是否有 SSL/TLS 证书状态缓存以及它是如何管理的?

信息安全 tls 视窗 证书 交换 IE浏览器
2021-09-02 00:06:43

今天我更改了 3,000 多个 Outlook 客户端正在使用的 SSL 证书。在这样做时,我将证书更改为具有相同主题名称、到期时间和其他所有内容的“旧”证书。只有指纹和一个 SAN 名称发生了变化。一旦报告出现问题,我就恢复了更改。(1小时)

似乎在执行此操作时,几个部署的 Outlook 实例挂起,尽管我以支持身份使用 Outlook 工作了 15 年,但我无法挽救配置文件并不得不重新创建它。(我不想对剩余的 20 多个配置文件重复此过程)

我只能假设 Windows、Outlook 或其 IE 依赖项中存在 SSL 缓存。

这让我想到了我的问题:

  • IE SSL 状态按钮中存在哪些 SSL 数据?这是 Web HTTP 数据或证书数据的缓存吗?

  • 是否有每个应用程序 SSL 缓存和/或全局缓存?(例如频道等)

  • 如何编辑或管理此缓存?

这是 IE 中 SSL 编辑器的图片(请参阅“清除 SSL 状态”)

在此处输入图像描述


更新:

即使证书格式正确,取消选中 Outlook 配置中的以下文本框似乎可以更正问题

在此处输入图像描述

2个回答

通常,SSL 管理是按进程进行的。例如,SSL 实现 DLL 将记住 SSL会话并能够协商简短的握手(即当客户端重新连接到服务器时,他们同意重用他们在先前连接中建立的对称共享密钥)。Internet Explorer 现在有生成多个进程的习惯,但包含一些技巧以在这些进程之间共享 SSL 会话信息。但是,当所有 IE 进程都关闭时,这一切都会消失。

缓存中剩下的是 CRL。当 Windows 想要验证证书(例如服务器证书)时,它会尝试获取吊销信息,从而获取从证书本身中的 URL 下载的 CRL 或 OCSP 响应。Windows 将缓存 CRL,这是一个磁盘缓存,因为它会阻止重新启动。Windows 还将缓存“负”CRL,即无法从给定 URL 获取 CRL。如果 Windows 无法从特定 URL 获取 CRL,它可能会在 8 小时内放弃再次尝试相同的 URL——甚至重新启动也可能不足以解锁它。这常常令人厌烦。

与 CRL 缓存类似,Windows 也可以使用证书(Authority Information Access扩展名)中的 URL 下载中间 CA 证书。这些 CA 证书也可以被缓存,尽管它们不一定出现在证书存储中(从 中可见certmgr.msc)。

有关 Windows CRL 缓存的一些信息,请参阅此博客文章

在 Active Directory 上下文中使用基于证书的客户端身份验证时,事情变得更加复杂,因为:

  • SSL 客户端验证 SSL 服务器证书。
  • SSL 服务器验证 AD 服务器证书。
  • AD 服务器验证 SSL 客户端证书。

所有三个验证都在不同的机器上执行,具有微妙的不同规则,证书到 AD 帐户的映射可能会在很多方面失败。

“清除 SSL 状态”按钮用于清除用于对基于 SSL 的服务进行身份验证的选定客户端证书的 SSL 缓存。它只是为了使客户端证书更快地工作(部分是通过记住您用于对某个站点进行身份验证的证书)。它不会缓存以前看到的 SSL 证书。

Outlook+Exchange 可以使用客户端证书进行身份验证,但这不是常用配置;大多数网站坚持使用 NTLM 或 Kerberos over SSL。

Outlook+IMAP 不能使用客户端证书,但我很可能错了;我还没有听说过使用它们的实例。

相反,您可能遇到的是 Windows SSL Validator 的问题。