使用传输模式证书保护WCF

本文关键字:保护 WCF 证书 模式 传输 | 更新日期: 2023-09-27 18:14:26

我正在使用传输模式的WCF服务。我需要使用证书使此服务安全。我按照下面的链接给出的步骤,让它在我的本地工作http://www.codeproject.com/Articles/36683/simple-steps-to-enable-X-certificates-on-WCF

我现在面临的问题是:-

    在上面提到的步骤中,我的服务在本地运行,我的客户端应用程序调用该服务,在本地运行。现在,对于我的QA部署,我的服务托管在一台服务器上,我的客户端应用程序托管在另一台服务器上。
  1. 我没有在这两个服务器上使用makecert创建证书的visual studio注释提示符。
  2. 我的服务将在https。
  3. 我将使用一些第三方来获得我的生产证书,但现在我不知道如何为我的QA环境工作。

我已经尝试创建一个证书作为根证书颁发机构并将其安装在两个服务器中。在这种方法中,我也卡住了,我将如何在这个根权限下创建我的客户端和服务器证书。请让我知道我怎么能得到这个工作。

使用传输模式证书保护WCF

终于修好了。我必须在我的本地使用makecert创建证书,然后必须在我的QA环境中导入它们(将在我的生产环境中使用来自可信第三方的证书)。我的要求是确保我的服务安全,不允许未经授权的客户端使用它。

My service web-config.

绑定的变化

<bindings>
  <basicHttpBinding>
    <binding name="basicHttpEndpointBinding">
      <security mode="TransportWithMessageCredential">
        <transport clientCredentialType="None" />
        <message clientCredentialType="Certificate" />
      </security>
    </binding>
  </basicHttpBinding>
</bindings

行为改变。

  <serviceCredentials>
     <clientCertificate>
         <authentication certificateValidationMode="ChainTrust" revocationMode="NoCheck" />
      </clientCertificate>          
  </serviceCredentials>

My Client web-config.

绑定的变化

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

添加行为
<behaviors>
  <endpointBehaviors>
    <behavior name="CustomBehavior">
      <clientCredentials>
        <clientCertificate findValue="RootCATest"
                           x509FindType="FindByIssuerName"
                           storeLocation="LocalMachine"
                           storeName="My"/>
      </clientCredentials>
    </behavior>
  </endpointBehaviors>
</behaviors>

将此行为附加到端点

behaviorConfiguration = " CustomBehavior "