ChrisZzZzZz Ответов: 1

C# потребляет wsdl с SSL и wssecurity с сертификатами


Я должен использовать wsdl с SSL-клиентскими сертификатами и сертификатом сервера для проверки ответа сервера в C# .NET.
Я все еще получил ошибку не удалось создать безопасный канал SSL/TLS

Что я уже пробовал:

Когда я использую wsHttpBinding с
<security mode="Transport">
Я получаю errot о недостатке
ws:security header
. Когда я выбираю TransportWithMessageCredential soap enveloped подписывается, но я получил ошибку не удается создать безопасный канал tls/ssl.

Во время отладки я заметил, что когда режим безопасности является транспортным, а рукопожатие есть:

TlsStream#6134445::.ctor(host=XXXXX, #certs=1)

и он подключается к WS, но я получаю ошибку отсутствует заголовок ws:security. Но когда я меняюсь на TransportWithMessageCredential, я вижу в network.log:

TlsStream#29087245::.ctor(host=XXXXX, #certs=0)

а потом я получил ошибку о канале TLS/SSL. Как я могу настроить свой клиент на использование SSL-сертификата для транспорта и подписания messge?

1 Ответов

Рейтинг:
9

ChrisZzZzZz

Ответ здесь:
https://blogs.msdn.microsoft.com/saurabs/2016/03/07/wcf-how-to-send-two-different-client-certificates-as-credentials-at-both-transport-and-message-level/

Вы должны создать пользовательские учетные данные для transportCertificate, а затем добавить их в поведение. Существует стандартный параметр, чтобы использовать 3-х сертификатов на один и тот же момент. Предоставленное решение было настроено для моего проекта, и я использую authenticationMode="MutualCertificate", а в поведении я использую также сертификат сервера. Я настраиваю только добавление транспортного сертификата, все остальное-из базового класса.