2013-06-13 5 views
0

Написание клиента веб-службы в C#/WCF и невозможность получения канала для аутентификации. Это сообщение об ошибке, что я получаю, когда я пытаюсь выполнить API вызова:Аутентификация сертификата WCF и клиента

"Could not establish secure channel for SSL/TLS with authority 'www.redacted.com'."

И конфигурационный файл:

<behaviors> 
     <endpointBehaviors> 
      <behavior name="NewBehavior0"> 
       <clientCredentials> 
        <clientCertificate findValue="th um bp ri nt va lu e go es he re" 
         x509FindType="FindByThumbprint" /> 
       </clientCredentials> 
      </behavior> 
     </endpointBehaviors> 
    </behaviors> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="WsApiServiceSoapBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Mtom" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> 
       <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/> 
       <security mode="Transport"> 
        <transport clientCredentialType="None" proxyCredentialType="None" realm=""/> 
        <message clientCredentialType="UserName" algorithmSuite="Default"/> 
       </security> 
      </binding> 
     </basicHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="https://www.<redacted>.com/services/WsApiService/" 
      behaviorConfiguration="NewBehavior0" binding="basicHttpBinding" 
      bindingConfiguration="WsApiServiceSoapBinding" contract="WsApiServicePortType" 
      name="WsApiServicePort" /> 
    </client> 

Единственное, что я делаю в клиентском коде выполнение вызова метода getDoc. Прокси-класс автоматически генерируется из WSDL под WCF. Я проверил, что сертификат установлен в категории «Личные» в certmgr, истек и не предназначен для всех целей. (Я должен отметить, что этот же сертификат работал очень хорошо под WSE.) Я искал вокруг и не могу найти ничего, что противоречит тому, как он настроен в настоящее время.

Любые идеи? Если вам нужно увидеть еще один код, дайте мне знать, и я отправлю его как можно скорее.

+0

подписан ли сертификат самообслуживание? – dna

+0

Это так. Он был выпущен и подписан сторонним веб-сервисом. – Ant

+0

Тогда посмотрите на этот вопрос: http://stackoverflow.com/questions/1742938/wcf-could-not-establish-trust-relationship-for-the-ssl-tls-secure-channel-with – dna

ответ

0

Ну, после копания немного глубже, я узнал, что использовал неправильный отпечаток. Тот, который я использовал, принадлежал сертификату от одного и того же эмитента, но для другой конечной точки (не уверен, как я их перепутал). Теперь, когда я использую правильный сертификат, я могу установить SSL.

Теперь я просто должен выяснить, почему эта услуга MTOM удивляется моей просьбе MTOM: P

+0

Рад это слышать! Иногда решение просто под носом! – dna

Смежные вопросы