403.7 IIS 7.5 SSL客户端证书身份验证问题

我正在使用IIS 7.5下的2种SSL与外部合作伙伴一起测试Web服务。我需要SSL,需要客户端证书并使用一对一映射来对域帐户进行身份验证。我已经配置了所有内容,并且可以在我们的网络上正常工作(我能够提供客户端证书,进行身份验证并从浏览器和测试工具调用服务)。 从网络外部(大多数情况下,请参见下文),我收到403.7错误。我已经遍历了计算机级别的证书存储,并确保证书和CA受信任。 这是奇怪的事情。我在家中获得了要进行测试的I型证书(并获得了403.7,就像我们打算的合作伙伴一样)。因此,我设置了Fiddler来调试SSL并发送我的证书,这出于某些原因而起作用。我设置了一个测试工具以通过完全相同的证书,并获得了403.7。我在浏览器(IE 9)中进行测试,没有得到客户端证书的提示,并获得403.7。 任何帮助表示赞赏。 法案     
已邀请:
上次检查时,IIS使用重新协商(默认情况下)来获取客户端证书:第一次握手是服务器不请求客户端证书,然后是另一个握手(这次是加密的)请求证书(通过TLS
CertificateRequest
消息)。这将阻止您从Wireshark中看到任何内容,除非您将其配置为使用服务器的私钥并解密流量(请注意,这仅适用于某些密码套件)。 查看客户端证书协商的一种方法是使用netsh和clientcertnegotiation = true(这与初始协商有关)将IIS配置为使用初始客户端证书协商。至少在握手过程中会清晰地发送“ 0”和证书,因此您应该能够使用Wireshark看到它。 如果客户端没有向服务器发送证书作为对“ 0”的响应,您仍然会看到来自客户端的空的“ 3”消息。 如果您不导出带有证书的私钥以与Fiddler或任何其他客户端一起使用,则它将无法使用证书。它最多可能尝试发送证书,但是握手将失败(因为“ 4”消息需要由客户端的私钥进行签名)。 我想您可能会遇到以下问题: 服务器不接受不提供证书的证书(它实际上是可选的), 出示无效的证书会使其失败并导致此403.7状态代码(许多服务器和SSL / TLS堆栈会将其实施为致命错误,但是TLS规范并未说
unsupported_certificate
certificate_revoked
certificate_expired
certificate_unknown
应该是致命的,因此这由服务器决定)。     
您是否在使用同一台物理计算机测试网络内和外部网络连接?如果不是,您确定外部网络客户端具有可访问的私钥吗? 我之前尚未配置Fiddler客户端身份验证。它是否从标准证书存储区读取客户端证书和密钥?它是否直接从PKCS12中读取? 可能有用的另一件事是检查WireShark中的TLS握手。具体来说,请检查服务器的“证书请求”消息,因为此处的数据会提示客户端(IE9)应在提示中显示哪些客户端证书。比较内部和外部连接。     

要回复问题请先登录注册