我们使用客户端 SSL 证书来保护基于 Web 的用户与我们的 Web 服务器(SharePoint 站点的编辑站点)的通信。证书在内部生成并发送给用户进行安装。
通常我们没有任何问题,但最近一些用户无法访问这些站点,而其他用户可以在同一时间段内成功进行身份验证,甚至使用相同的证书。
网络数据包捕获表明 IE 并不总是发送证书。此时,卸载并重新安装证书可以解决问题——但这是不可取的。
我们使用客户端 SSL 证书来保护基于 Web 的用户与我们的 Web 服务器(SharePoint 站点的编辑站点)的通信。证书在内部生成并发送给用户进行安装。
通常我们没有任何问题,但最近一些用户无法访问这些站点,而其他用户可以在同一时间段内成功进行身份验证,甚至使用相同的证书。
网络数据包捕获表明 IE 并不总是发送证书。此时,卸载并重新安装证书可以解决问题——但这是不可取的。
您是否真的使用 SSL 证书验证客户端身份,而不仅仅是使用服务器端证书和 SSL 来加密通信?如果是这样,那不是特别常见的情况(尽管您可能有非常充分的理由这样做)。如果您没有业务需要使用证书对客户端进行身份验证,您仍然可以在关闭客户端基于证书的身份验证的同时加密通信,这将解决您的问题:)
根据MSDN 上的IIS 身份验证文档:
您是否有可能有多个 CA 生成客户端证书,并且由于某种原因其中一个不在服务器的证书信任列表 (CTL) 中?
您在客户的个人商店中是否有多个适用的证书?如果有多个证书,IE 可能无法选择正确的证书,因此它不会发送任何内容。在查看网络嗅探时,服务器是否需要客户端身份验证?
出现问题时,您能否使用 certutil.exe 列出客户端证书?您可以使用 certutil -v -user -store "my" 并检查权限/加密测试通过/其他可能看起来不正常的事情。如果有什么,你可以尝试找到它的根本原因。