C# WCF客户端证书身份验证,服务的SSL设置';SSLRequiremert&x27;与IIS';Ssl、SslNegotiateCert';
我有一个网站,将从一些客户端调用,这些客户端将使用客户端证书进行身份验证,而其他客户端则不会,因此我必须将客户端证书的iis设置设置为允许。这在windows 7 professional上运行良好,但是当我尝试在windows 7的虚拟服务器安装程序上运行此设置时,会出现以下错误 服务“SslRequireCert”的SSL设置与IIS“SSL,SslNegotiateCert”的设置不匹配 两个环境之间的所有iis设置似乎都相同C# WCF客户端证书身份验证,服务的SSL设置';SSLRequiremert&x27;与IIS';Ssl、SslNegotiateCert';,c#,wcf,iis,ssl,C#,Wcf,Iis,Ssl,我有一个网站,将从一些客户端调用,这些客户端将使用客户端证书进行身份验证,而其他客户端则不会,因此我必须将客户端证书的iis设置设置为允许。这在windows 7 professional上运行良好,但是当我尝试在windows 7的虚拟服务器安装程序上运行此设置时,会出现以下错误 服务“SslRequireCert”的SSL设置与IIS“SSL,SslNegotiateCert”的设置不匹配 两个环境之间的所有iis设置似乎都相同 Jeremy这可能是由于IIS设置与WCF配置不匹配造成的
Jeremy这可能是由于IIS设置与WCF配置不匹配造成的
<binding name="TransportWithCertificate">
<security mode="Transport">
<transport clientCredentialType="Certificate" />
</security>
</binding>
错误消息非常明确。它表示“SSLRequireCert”或clientCredentialType=“Certificate”与“Ssl、SslNegotiateCert”或客户端证书的IIS设置不匹配:接受。要在IIS中修复此问题,您需要ClientCertificates:Require
在我的例子中,Server2008R2/IIS7.5的行为与Windows7/IIS7.5和Windows8.1/IIS8.5不同。在这两个桌面操作系统版本中,我都可以使用requiressl/客户端证书:Accept运行应用程序
但在Server 2008 R2/IIS 7.5上,页面不会加载错误SSL设置,因为服务“SslRequireCert”的SSL设置与IIS的SSL设置不匹配,SslNegotiateCert'更改为客户端证书:Require解决了此问题。我在调试需要客户端证书的WCF服务时遇到此错误。它在Web.config中具有以下设置:
<bindings>
<basicHttpsBinding>
<binding name="basicHttps" maxReceivedMessageSize="10485760">
<readerQuotas maxStringContentLength="7340320" maxArrayLength="2147483647"/>
<security mode="Transport">
<transport clientCredentialType="Certificate"/>
</security>
</binding>
</basicHttpsBinding>
</bindings>
这使我在从VisualStudio调试时出错。注释“安全”节点后,此错误消失:
<bindings>
<basicHttpsBinding>
<binding name="basicHttps" maxReceivedMessageSize="10485760">
<readerQuotas maxStringContentLength="7340320" maxArrayLength="2147483647"/>
<!--<security mode="Transport">
<transport clientCredentialType="Certificate"/>
</security>-->
</binding>
</basicHttpsBinding>
</bindings>
请显示环境的设置同一问题的答案是否没有帮助?-它们是相同的,没有变化,似乎是一个iis问题。我也尝试过对mex端点进行注释,但这并没有解决我的问题。