具有传输安全性的主机WCF服务,并在IIS7中进行证书身份验证(Windows Server 2008 R2)
我正在尝试托管一个WCF服务,该服务在Windows Server 2008 R2中使用“传输”安全性和“证书”作为客户端身份验证,我收到以下错误: “服务'SslRequireCert'的SSL设置与IIS'SslNegotiateCert'的设置不匹配” 我在Windows7的IIS7.5中托管了相同的服务,它运行良好。我无法理解在这种环境下我是否遗漏了什么 这是我的web.config:具有传输安全性的主机WCF服务,并在IIS7中进行证书身份验证(Windows Server 2008 R2),wcf,iis,windows-server-2008-r2,Wcf,Iis,Windows Server 2008 R2,我正在尝试托管一个WCF服务,该服务在Windows Server 2008 R2中使用“传输”安全性和“证书”作为客户端身份验证,我收到以下错误: “服务'SslRequireCert'的SSL设置与IIS'SslNegotiateCert'的设置不匹配” 我在Windows7的IIS7.5中托管了相同的服务,它运行良好。我无法理解在这种环境下我是否遗漏了什么 这是我的web.config: <system.serviceModel> <services> <
<system.serviceModel>
<services>
<service name="TestService.TestService" behaviorConfiguration="mexBehavior">
<endpoint address="" binding="wsHttpBinding" contract="TestService.ITestService" bindingConfiguration="TestService_Client2_ITestService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="mexBehavior">
<useRequestHeadersForMetadataAddress />
<serviceMetadata httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<wsHttpBinding>
<binding name="TestService_Client2_ITestService">
<security mode="Transport">
<transport clientCredentialType="Certificate" />
</security>
</binding>
</wsHttpBinding>
以下是我在IIS中所做的设置:
1) 作为网站托管Web服务
2) 已安装服务器证书
3) 启用Https并分配了端口,还分配了证书
4) 在网站中-->SSlCertificates-->已启用接受(也尝试了接受和要求SSL)无效。
5) 应用程序池标识:.net 4.0,启用32位:true
在搜索此错误时,我发现了以下来自microsoft的修补程序,它是.net framework 3.5.1的一部分。所以我在WindowsServer2008R2中安装了.NETFramework3.5.1功能,但仍然没有成功
目前,我没有任何想法,任何帮助都将不胜感激。谢谢在我将安全模式从“Transport”更改为“TransportWithMessageCredential”并在消息层而不是在传输层通过了客户端身份验证后,它成功了。以下是配置更改:
<binding name="TestService_Client2_ITestService">
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None" />
<message clientCredentialType="Certificate"/>
</security>
</binding>
我不知道为什么,但由于某些原因,在Windows server 2008 R2中,通过传输层传递证书不起作用(或者)可能存在我需要启用的设置。了解根本原因将是非常棒的。通过网站-->SSlCertificates-->Accept中的
4)您的意思是SSL设置
??为了清楚起见,在网站的SSL设置中,您需要选中“需要SSL”复选框,在该复选框下,对于客户端证书,您应该选择“接受”或“需要”。除此之外,一切似乎都正常,您是否使用了其他浏览器来查看它是否有任何区别?Ashkan,我的坏消息是SSL设置。我在1)SslSettings->Require Ssl(选中)&接受(选中)和2)SslSettings-->Require Ssl(未选中)&接受(选中)中尝试了这两个选项。对于这两种变体,它都不起作用。在那个服务器盒上除了IE没有安装其他浏览器。我不确定是否允许我安装其他浏览器…但我认为即使这样也不会有帮助。。。