什么原因导致受信任的根证书颁发机构自动安装到本地机器的证书存储中?

什么原因导致受信任的根证书颁发机构自动安装到本地机器的证书存储中?

我花了一整天时间诊断使用双向 HTTPS 的测试服务的问题。服务托管在运行 Windows Server 2008 Enterprise 版本的测试服务器上的 IIS 7 中。

几周前,所有测试服务突然停止工作,对这些服务的任何请求都以 403.7“需要客户端证书”问题结束。经过大量搜索,我发现本文描述与 Windows Server 2003 类似的问题。

简而言之,问题是由于本地计算机证书存储中安装了太多受信任的根 CA 造成的。服务器在相互 HTTPS 握手期间向客户端发送受信任 CA 的“列表”,客户端可以根据此列表选择证书(除非 IIS 中的站点配置了 CTL,但这只是针对另一个问题)。问题是列表只能有 16KB,因此如果有更多 CA,则不会将它们发送给客户端。如果使用的客户端证书是由其中一个截断的 CA 颁发的,则不会将其发送给服务器。

之后我检查了本地机器的受信任根证书存储,发现安装了 200 多个受信任根 CA。更糟糕的是:我们没有安装它们!我在某处找到了一些信息(抱歉再也找不到了),这些 CA 是通过 Windows 更新自动安装的。

问题:如何在不关闭 Windows 更新的情况下关闭向我们的计算机安装 CA 证书?

答案1

说实话,我不认为它们都是通过 Windows Update 安装的。如果是的话,可能会有更多的人遇到这个问题,对吧?

它们也可以通过 GPO 和域成员资格来安装,这是我首先要查看的地方。

但是,在查看之前,我希望允许使用 HTTPS......(也许,除非您怀疑或知道其中存在恶意 CA 信任),最容易的方法是删除您不想要的那些。 证书管理工具,以及 GPO 的启动或关闭脚本部分中的脚本删除。

它们也可能被恶意安装,如果是这样的话,您就受到严重损害了,我建议/您需要开始清除每一台带有恶意证书作为受信任 CA 的机器。

相关内容