#c# #.net #ssl
#c# #.net #ssl
Вопрос:
Я пытаюсь отправить 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)).Resu<
}
Я использую встроенный сертификат с действием сборки, установленным на «Встроенный ресурс»:
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 не отправляется или почему я получаю вышеуказанную ошибку?
Спасибо
Комментарии:
1. Можете ли вы попробовать использовать сертификат с веб-браузером? Работает ли это?
2. По какой-то причине этого сертификата нет в списке сертификатов, который появляется при переходе по URL-адресу в браузере, но я использовал другой, и я получаю метод 405, который не разрешен @MarkoKotar