Мне нужно использовать веб-API от одного из наших партнеров. Их API требует, чтобы я использовал сертификат для подключения.
Я не хочу устанавливать сертификат на наших серверах (ВМ). Это контрпродуктивно для нашей стратегии сервера Phoenix.
Я пытаюсь использовать сертификат программно. Проблема в том, что я получаю сообщение об ошибке:
AuthenticationException: удаленный сертификат недействителен в соответствии с процедурой проверки.
Я создаю HttpClient
, используя этот код:
_certificate = new X509Certificate2(_certificateFile);
var handler = new WebRequestHandler();
handler.ClientCertificates.Add(_certificate);
var client = new HttpClient(handler) { BaseAddress = new Uri(_url) };
Я могу заставить его работать, переопределив проверки сертификатов:
ServicePointManager.ServerCertificateValidationCallback += delegate { return true; };
Но это выглядит как плохой стиль.
Я проверил, что моя конечная точка соответствует CN всертификат
Является ли AuthenticationException
просто потому, что сертификат не установлен в хранилище сертификатов?
Если да, могу ли я временно с помощью кода установить сертификат и удалить его после?