Всем привет, пытаюсь уже пару дней решить нерешаемое :) Есть api, на который ходит POST request c авторизацией сертификатом:
var userConnection = Get<UserConnection>("UserConnection"); // переменная для сохранения тестового результат string httpResponseData = ""; //тащим из системной настройки с типом "бинарные данные" содержимое сертификата byte[] _certByte = (byte[])Terrasoft.Core.Configuration.SysSettings.GetValue(userConnection, "UsrIpsmsCertificate"); //из него реконструируем сертификат X509Certificate2 _certificate = new X509Certificate2(_certByte); // создаем тело POST запроса IpSMS _ipSMS = new IpSMS(); _ipSMS.action = "ping"; _ipSMS.baID = "populo"; string output = JsonConvert.SerializeObject(_ipSMS); //инициализируем uri string uri = "https://www.xxxxxxxxxxxxxxxxxxxxxxxxxxxx"; //определяем протоколы ServicePointManager, не контролируем валидность сертификата ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3; ServicePointManager.Expect100Continue = true; ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, error) => true; //выполняем request var httpWebRequest = (HttpWebRequest)WebRequest.Create(uri); httpWebRequest.Method = "POST"; httpWebRequest.ContentType = "text/json"; httpWebRequest.ClientCertificates.Add(_certificate); try { using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { streamWriter.Write(output); } var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { httpResponseData += streamReader.ReadToEnd().ToString(); } } catch (Exception ex) { httpResponseData += ex.InnerException == null ? ex.Message : ex.InnerException.Message; } //как-то выводим httpResponseData
Результат:
The request was aborted: Could not create SSL/TLS secure channel.
на сервере-приемнике:
] AH02261: Re-negotiation handshake failed
вот честно скажу, с сертификатами опыта мало, но чисто визуально все ок. И в чем тогда косяк?!
Нравится
1 комментарий
11 октября 2021 12:02
Дмитрий, добрый день!
Очень похоже на то, что вы используете Apache и его нужно обновить. Рекомендую ознакомится с этим обсуждением.
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать