Обязательно ли для .NET наличие сертификата корневого ЦС перед использованием сертификата pfx в качестве клиентского сертификата для безопасного запроса SOAP? - PullRequest
0 голосов
/ 11 октября 2018

Я пишу .NET-приложение, которое должно использовать API веб-сервисов, предоставляемых сторонним поставщиком.Этот провайдер дал мне сертификат pfx (и пароль), который я должен использовать для аутентификации моего HTTP-клиента на их серверах.

Когда я использую SOAPUI для доступа к веб-службе с этим сертификатом и этим паролем, веб-службаотвечает хорошо.

Когда я пытаюсь создать клиент .NET в качестве веб-ссылки, соединение не устанавливается, сообщая мне, что «аутентификация не удалась, узел закрыл соединение».

Детализацияс Wireshark и сравнением потоков данных я вижу, что SOAPUI отправляет сертификат клиента в ответ на сертификат сервера, а программа .NET - нет.Сертификат клиента загружается в коллекцию ClientsCertificate, но .NET отказывается отправлять сертификат клиента.

Сертификат выпущен и подписан центром сертификации, принадлежащим стороннему поставщику, но у нас нет сертификата центра сертификации..

Моя текущая теория заключается в том, что .NET отказывается использовать сертификат, если не может проверить цепочку сертификатов.Так ли это, и в каком случае, есть ли способ обойти эту проверку?

1 Ответ

0 голосов
/ 11 октября 2018

При попытке выполнить SFTP в приложении vb.net я добавил этот код в начало страницы.

Public Sub New()
       ServicePointManager.ServerCertificateValidationCallback = New System.Net.Security.RemoteCertificateValidationCallback(AddressOf CertificateAuthenticate)
End Sub
Private Function CertificateAuthenticate(ByVal sender As Object, ByVal certificate As X509Certificate, ByVal chain As X509Chain, ByVal sslPolicyErrors As SslPolicyErrors) As Boolean
    Return True
End Function

Так что в обычном FTP-клиенте ftp-клиент будет предлагать пользователю«доверять» сертификату, поэтому это «возвращаемое значение True», по сути, говорит приложению .net доверять сертификату.Не уверен, что это ответ, но надеюсь, что это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...