我花了整整一天的时间,通过使用双方的HTTPS诊断我的testing服务的问题。 服务托pipe在运行Windows Server 2008 Enterprise Edition的testing服务器上的IIS 7中。
几周前,所有testing服务都停止工作,对这些服务的任何请求都以403.7“需要客户端证书”结束。 经过大量的search,我发现这篇文章描述了与Windows Server 2003类似的问题。
简而言之,问题是由本地机器证书存储中安装的可信根CA过多造成的。 服务器在相互HTTPS握手期间发送可信CA的“列表”给客户端,客户端可以根据这个列表select证书(除非IIS中的站点configuration了CTL,但是针对不同的问题 )。 问题是,列表只能有16KB,所以如果有更多的CA,他们根本不会发送到客户端。 如果使用的客户端证书由其中一个截断的CA发出,则不会发送给服务器。
之后,我检查了本地计算机的受信任根证书存储区,发现安装了超过200个受信任的根CA. 更糟糕的是,我们没有安装它们! 我在某处发现了一些信息(抱歉找不到),这些CA是通过Windows Update自动安装的。
问题:如何closures安装CA证书到我们的电脑,而不closuresWindows更新?
我不认为它们都是由Windows Update安装的。 如果他们有这个问题,可能会有更多的人,对吧?
他们也可以由GPO和域名成员安装,这是我首先看的地方。
但是,在查看之前,我想要允许使用HTTPS …(也许,除非您怀疑或知道您有恶意的CA信任),通过删除那些您不想要的信息,可以轻松完成。 证书pipe理器工具 ,以及GPO的启动或closures脚本部分中的脚本删除。
他们也可以被恶意安装,如果是这样的话,那么你就会受到严重的危害,我build议你/ /你需要开始擦拭每一台带有恶意证书的机器作为信任的CA.