IE7停止发送客户端SSL证书

我们使用客户端SSL证书来保护基于Web的用户与我们的Web服务器(SharePoint站点的编辑站点)的通信。 证书在内部生成并发送给用户进行安装。

通常情况下,我们没有任何问题,但最近有些用户无法访问网站,而其他用户可以在同一时间段内成功authentication,甚至使用相同的证书。

networking数据包捕获表明IE并不总是发送证书。 在这一点上,卸载并重新安装证书纠正了这个问题 – 但并不可取。

您实际上是否使用SSL证书validation客户端身份,而不仅仅是使用服务器端证书和SSL来encryption通信? 如果是这样,这不是一个特别常见的情况(虽然你可能有非常有效的理由)。 如果您没有业务需要使用证书对客户端进行身份validation,则仍然可以encryption通信,同时closures客户端基于证书的身份validation,这将解决您的问题:)

根据MSDN上的IIS身份validation文档:

IIS还可以使用SSL / TLS通过要求客户端提供证书来对客户端进行身份validation。 当请求客户端证书时,服务器向客户端提供服务器信任的CA列表。 该列表来自服务器的证书信任列表(CTL)。 如果客户拥有来自CTL的CA颁发的证书,它会将该证书的副本发送到服务器进行validation。 如果证书有效,IIS会对映射到提供的证书的用户进行身份validation。 因此,您应该将IIS上的CTL限制在您确定为真正值得信赖的CA上。

是否有可能有多个CA生成客户端证书,出于某种原因,其中一个不在服务器的证书信任列表(CTL)上?

客户的个人商店中是否有多个适用的证书? 如果有多个证书,IE可能无法select正确的证书,所以它不会发送任何东西。 在查看networking嗅探时,服务器是否需要客户端身份validation?

问题出现时,您可以使用certutil.exe列出客户端证书吗? 您可以使用certutil -v -user -store“我的”并检查权限/encryptiontesting传递/其他可能closures的事情。 如果有什么东西,你可以试着找出它的根本原因。