Выполнение вызовов https с использованием HttpClient throwin
Https-вызовы из HttpClient завершаются неудачно с ошибкой доверительных отношений при развертывании в Windows Server 2012 R2, но успешны при запуске из Visual Studio 2017
Я занимаюсь разработкой API с использованием ASP.NET Web API 2 и.NET Framework 4.8. API делает вызовы к внешнему API, который является https. Если вызов выполнен успешно, внешний API вернет код состояния 200 и данные json. Когда я запускаю приложение из Visual Studio 2017, вызовы завершаются успешно и возвращают ответ json, но после развертывания API в IIS на Win Server 2012 R2 я получение ошибки доверительных отношений SSL/TLS.
У нас есть сертификат от GoDaddy, который мы используем для нашего портала для клиентов, и срок действия сертификата истекает в следующем году. Я вручную прикрепил этот сертификат, но теперь я получаю ответ 200 без ответа json.
var handler = new HttpClientHandler
{
Credentials = new NetworkCredential("username", "password"),
ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return true; },
ClientCertificateOptions = ClientCertificateOption.Manual,
SslProtocols = System.Security.Authentication.SslProtocols.Tls12
};
string file = "certificate.crt";
handler.ClientCertificates.Add(new X509Certificate(file));
HttpClient client = new HttpClient(handler)
{
BaseAddress = new Uri("https://payonline.domain.com"),
Timeout = TimeSpan.FromMinutes(5)
};
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpContent httpContent = new StringContent(requestData, Encoding.UTF8, "application/json");
var response = await client.PostAsync("gateway/v1/transactions/amount", httpContent);
Я ожидаю ответа 200 с содержанием, но получаю пустой ответ 200. Если я запускаю из VS, я получаю ответ 200 с содержимым, но после развертывания его пустые 200.