У меня есть файл самоподписанного сертификата (.cer) от третьей стороны. Я хотел бы использовать этот сертификат в коде для подключения к их веб-службе (через HTTPS), не устанавливая его в моем хранилище сертификатов в Windows. В частности, это сделано для того, чтобы всем остальным разработчикам в команде не пришлось устанавливать этот сертификат локально, чтобы подключение работало для них.
Есть ли способ сделать это в коде? Он может использовать либо старомодный клиентский код веб-службы (с помощью wsdl.exe или VS Add Web Reference), либо клиентский код WCF (с использованием svcutil.exe или VS Add Service Reference) — мы не определились, по какому пути мы хотим идти. пока что.
Я пытался:
proxy.ClientCertificates.Add(X509Certificate.CreateFromCertFile(@"d:\temp\mycert.cer"));
со старым кодом веб-сервиса, не повезло - он все равно не работает с Could not establish trust relationship for the SSL/TLS secure channel.
, пока я не установлю сертификат в хранилище сертификатов. То же самое для:
<identity>
<certificate encodedValue="the base64 encoded contents of the file" />
</identity>
в конечной точке в app.config, используя технологию клиента WCF.
Спасибо