WCF客户端证书认证,服务的SSL设置'SslRequireCert'不匹配IIS 'Ssl,
本文关键字:SslRequireCert 不匹配 Ssl IIS SSL 证书 客户端 认证 服务 WCF 设置 | 更新日期: 2023-09-27 18:18:18
我有一个网站,它将被一些客户端调用,这些客户端将使用客户端证书进行身份验证,而其他客户端则不会,因此我必须为客户端证书设置iis设置以允许。这在windows 7专业上工作得很好,但是当我尝试在windows 7的虚拟服务器设置上运行时,我得到以下错误
服务'SslRequireCert'的SSL设置与IIS ' SSL, SslNegotiateCert'的SSL设置不匹配
所有的iis设置在两个环境之间似乎是相同的
杰瑞米这可能是由于IIS设置与WCF配置不匹配引起的。
<binding name="TransportWithCertificate">
<security mode="Transport">
<transport clientCredentialType="Certificate" />
</security>
</binding>
错误消息非常明确。它说'SSLRequireCert'或clientCredentialType="证书"不匹配'Ssl, SslNegotiateCert'或客户端证书的IIS设置:接受。要在IIS中修复此问题,需要执行ClientCertificates: Require.
在我的情况下,Server 2008 R2/IIS 7.5与Windows 7/IIS 7.5表现不同&Windows 8.1/IIS 8.5。在这两个桌面操作系统版本中,我都可以使用需要SSL/客户端证书:接受来运行应用程序。
但是在Server 2008 R2/IIS 7.5上,页面无法加载服务'SslRequireCert'的错误SSL设置不匹配IIS ' SSL, SslNegotiateCert'更改为客户端证书:要求解决问题。
我在调试一个需要客户端证书的WCF服务时得到了这个错误。它在Web中有以下设置。配置:
<bindings>
<basicHttpsBinding>
<binding name="basicHttps" maxReceivedMessageSize="10485760">
<readerQuotas maxStringContentLength="7340320" maxArrayLength="2147483647"/>
<security mode="Transport">
<transport clientCredentialType="Certificate"/>
</security>
</binding>
</basicHttpsBinding>
</bindings>
这给了我从Visual Studio调试时的错误。在注释了'security'节点后,这个错误消失了:
<bindings>
<basicHttpsBinding>
<binding name="basicHttps" maxReceivedMessageSize="10485760">
<readerQuotas maxStringContentLength="7340320" maxArrayLength="2147483647"/>
<!--<security mode="Transport">
<transport clientCredentialType="Certificate"/>
</security>-->
</binding>
</basicHttpsBinding>
</bindings>