WCF服务不检查客户端证书CRL链

时间:2010-12-02 13:10:50

标签: c# wcf security certificate

端点绑定是WSHttpBinding,安全模式= Message,clientCredentialType = Certificate。

我在服务器端设置了以下行为(设置服务器证书并验证客户端证书):

<behavior name="serviceBehaviour">
<serviceCredentials>
     <serviceCertificate 
          storeLocation="LocalMachine" 
          storeName="My" 
          x509FindType="SubjectName"    
          findValue="CN=MyServerCertificateName" />
     <clientCertificate>
          <authentication 
           certificateValidationMode="PeerTrust" 
           trustedStoreLocation="LocalMachine" 
           revocationMode="Online" />
      </clientCertificate>
</serviceCredentials>
</behavior>

我按以下方式为客户端设置证书:

 <behavior name="clientEndpointCredential">
     <clientCredentials>
          <clientCertificate 
              storeName="My" 
              storeLocation="LocalMachine" 
              x509FindType="FindBySubjectName" 
              findValue="MyClientCertificateName" />
      </clientCredentials>
  </behavior>

使用此代码,服务器会检查客户端CRL和对等信任。这项检查工作正常。

问题是当我在客户端凭据中添加以下代码时:

           <serviceCertificate>
               <authentication 
                   certificateValidationMode="PeerTrust" 
                   trustedStoreLocation="LocalMachine" 
                   revocationMode="Online" />
           </serviceCertificate>
      </clientCredentials>

当我更改clientCredentials.ServiceCertificate.Authentication属性时,不检查CRL链! crl发布服务器已关闭,服务器仍然收到客户端消息!

我想添加此代码,以使客户端验证服务器证书链。

提前感谢您的帮助。

0 个答案:

没有答案