403.7 IIS 7.5 SSL客户端证书身份验证问题
我正在使用IIS7.5下的双向SSL与外部合作伙伴测试web服务。我需要SSL,需要客户端证书,并使用一对一映射对域帐户进行身份验证。我已经配置了所有东西,并且它在我们的网络上运行良好(我能够提供客户端证书,获得身份验证,并从浏览器和测试工具调用服务)。 从我们的网络之外(在大多数情况下,见下文),我得到一个403.7错误。我已经检查了机器级证书存储,并确保证书和CA是可信的。 奇怪的是。我在家里获得了一个I型证书进行测试(得到了403.7,就像我们的目标合作伙伴一样)。所以我设置了Fiddler来调试SSL并发送我的证书,这是出于某种原因。我设置了一个测试线束以通过完全相同的证书,得到了403.7。我在我的浏览器(IE 9)中进行测试,没有得到客户端证书提示,得到403.7。403.7 IIS 7.5 SSL客户端证书身份验证问题,ssl,client,certificate,Ssl,Client,Certificate,我正在使用IIS7.5下的双向SSL与外部合作伙伴测试web服务。我需要SSL,需要客户端证书,并使用一对一映射对域帐户进行身份验证。我已经配置了所有东西,并且它在我们的网络上运行良好(我能够提供客户端证书,获得身份验证,并从浏览器和测试工具调用服务)。 从我们的网络之外(在大多数情况下,见下文),我得到一个403.7错误。我已经检查了机器级证书存储,并确保证书和CA是可信的。 奇怪的是。我在家里获得了一个I型证书进行测试(得到了403.7,就像我们的目标合作伙伴一样)。所以我设置了Fiddle
谢谢你的帮助。
Bill您是否使用同一台物理机器来测试网络内和外部网络连接?如果没有,您确定外部网络客户端具有可访问的私钥吗 我以前没有配置Fiddler客户端身份验证。它是否从标准证书存储中读取客户端证书和密钥?它是否直接从PKCS12读取
另一件可能有用的事情是在WireShark中检查TLS握手。具体来说,请查看服务器的“证书请求”消息,因为此处的数据提示客户端(IE9)应该在提示符中显示哪些客户端证书。比较内部和外部连接。上次我检查时,IIS使用重新协商(默认情况下)获取客户端证书:第一次握手时服务器不请求客户端证书,然后是另一次握手(这次加密),服务器请求证书(通过TLS
CertificateRequest
消息)。这将阻止您查看Wireshark的任何内容,除非您对其进行了配置(请注意,这仅适用于某些密码套件)
查看客户端证书协商的一种方法是将IIS配置为使用初始客户端证书协商,使用(关于初始协商)。至少在握手过程中,CertificateRequest
和证书将被清除发送,因此您应该能够通过Wireshark看到这一点。
如果客户端没有向服务器发送证书作为对CertificateRequest
的响应,您仍然会看到来自客户端的空certificate
消息
如果您没有将私钥与证书一起导出以与Fiddler或其他任何客户端一起使用,则它将无法使用证书。它最多可以尝试发送证书,但握手将失败(因为CertificateVerify
消息需要由客户端的私钥签名)
我猜您可能会遇到以下问题:
- 服务器接受不提供证书(实际上是可选的)
- 出示无效证书会使其失败并导致此403.7状态代码(许多服务器和SSL/TLS堆栈会将此作为致命错误来实现,但不会说
,不受支持的\u证书
,证书被吊销
,证书过期
应该是致命错误,因此这由服务器自行决定)证书未知