Служба WCF не проверяет цепочку отзыва сертификатов клиента - PullRequest
2 голосов
/ 02 декабря 2010

Привязка конечной точки - это WSHttpBinding с режимом безопасности = Сообщение и clientCredentialType = Сертификат.

Я установил следующее поведение на стороне сервера (Установить сертификат сервера и проверить сертификат клиента):

<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 не работает, и сервер все еще получает клиентские сообщения!

Я хотел добавить этот код, чтобы клиент мог проверить цепочку сертификатов сервера.

Спасибо за вашпомогите заранее.

...