端点绑定是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发布服务器已关闭,服务器仍然收到客户端消息!
我想添加此代码,以使客户端验证服务器证书链。
提前感谢您的帮助。