使用IIS7中的证书进行身份验证的传输安全性的主机WCF服务(Windows Server 2008 R2)

时间:2016-03-06 21:50:19

标签: wcf iis windows-server-2008-r2

我正在尝试托管使用" Transport"的WCF服务。安全和"证书"作为Windows Server 2008 R2中的客户端身份验证,我收到以下错误:

"服务的SSL设置' SslRequireCert'不符合IIS&SslNegotiateCert'"

我在Windows 7中的IIS 7.5中托管了相同的服务,它运行正常。我无法理解我是否在此环境中遗漏了任何东西。

这是我的web.config:

 <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)作为网站托管网络服务 2)安装了服务器证书 3)启用Https并分配端口并分配证书 4)在网站 - &gt; SSlCertificates - &gt;启用接受(也尝试使用Accept和Require SSL)不起作用。 5)应用程序池标识:.net 4.0,启用32位:true

在搜索此错误时,我在microsoft中找到了以下修补程序,它是.net framework 3.5.1的一部分。所以我在Windows Server 2008 R2中安装了.net framework 3.5.1功能,但仍然没有运气。

https://support.microsoft.com/en-us/kb/976566

目前,我没有想法,任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:0)

在我将安全模式从&#34; Transport&#34; to&#34; TransportWithMessageCredential&#34;并在Message层而不是Transport中传递clientAuthentication。以下是配置更改:

<binding name="TestService_Client2_ITestService">             
    <security mode="TransportWithMessageCredential">

          <transport clientCredentialType="None" />
          <message clientCredentialType="Certificate"/>
    </security>         
</binding> 

我不知道为什么,但由于某种原因,在Windows Server 2008 R2中,通过传输层传递证书不起作用(或)可能有一个我需要打开的设置。知道根本原因会很棒。

相关问题