Я пытаюсь интегрироваться с конечной точкой веб-службы, которая требует базового и клиентского сертификатов для аутентификации с использованием WCF. Я пробовал разные настройки, основанные на предложениях в Интернете, но все же получаю сообщение «Не удалось установить безопасный канал для SSL / TLS с полномочиями XXXXX». Сервер использует хорошо известный центр сертификации, который уже доступен в хранилище сертификатов Windows. В коде я успешно добавляю ClientCredentials.UserName.UserName, ClientCredentials.UserName.Password и ClientCredentials.ClientCertificate.Certificate.
1)
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Basic"/>
</security>
Результат: «Не удалось установить безопасный канал для SSL / TLS с полномочиями XXXXX».
2)
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Basic" />
<message clientCredentialType="Certificate" />
</security>
Результат: Результат: «Не удалось установить безопасный канал для SSL / TLS с полномочиями XXXXX».
3)
<security mode="Transport">
<transport clientCredentialType="Certificate"/>
<message clientCredentialType="UserName" />
</security>
Результат: HTTP-запрос неавторизован со схемой аутентификации клиента «Анонимный». Заголовок аутентификации, полученный от сервера, был «Basic realm =" Realm "». ---> System.Net.WebException: удаленный сервер возвратил ошибку: (401) неавторизованный.
Как прикрепить сертификат клиента с помощью обычной проверки подлинности, поскольку сервер ожидает обычной проверки подлинности на основе ошибки, возвращаемой при установке clientCredentialType как «Сертификат».
Примечание. Используя SOAPUI, я могу успешно подключиться к серверу.