Я пытаюсь отправить SSL-сертификат на внешний API для проверки подлинности с помощью их службы.Я получаю сообщение об ошибке: «Запрос был прерван: не удалось создать безопасный канал SSL / TLS».
Я разговаривал с компанией, в которой размещен API, и они сказали, что они изменили свой сервис для принятия любого SSL-сертификата, просто чтобы убедиться, что я действительно отправляю SSL-сертификат, и у меня возникла та же ошибка, поэтому похоже, что SSL-сертификат нене включается в запрос.
var clientHandler = new WebRequestHandler();
clientHandler.ClientCertificates.Add(GetEmbeddedCert());
ServicePointManager.Expect100Continue = true;
System.Net.ServicePointManager.SecurityProtocol =
SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
ServicePointManager.ServerCertificateValidationCallback +=
(sender, certificate, chain, sslPolicyErrors) => true;
using (var client = new HttpClient(clientHandler))
{
return client.PostAsync(_plugin.EndPoint.ToString().Trim(),
new StringContent(hl7)).Result;
}
Я использую встроенный сертификат с Build Action, для которого установлено значение «Встроенный ресурс»:
private X509Certificate2 GetEmbeddedCert()
{
using (Stream stream = Assembly.GetExecutingAssembly()
.GetManifestResourceStream(GetType(), "mycert.cer"))
{
byte[] bytes = new byte[stream.Length];
for (int idx = 0; idx < stream.Length; idx++)
bytes[idx] = (byte)stream.ReadByte();
X509Certificate2 cert = new X509Certificate2();
cert.Import(bytes);
return cert;
}
}
У всех есть идеи, почему сертификат SSLне отправляется или почему я получаю вышеуказанную ошибку?
Спасибо