Когда я пытаюсь подключиться к веб-сайту, я получаю сообщение об ошибке:
Запрос был прерван: не удалось создать безопасный канал SSL / TLS
Статус в исключение - SecureChannelFailure, ответ нулевой.
Поиск ответов в StackOverflow мне пока не помог. Я перепробовал все решения:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
ServicePointManager.Expect100Continue = true;
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
ServerCertificateValidationCallback никогда не вызывается.
Я могу без проблем открыть веб-сайт в Firefox и Edge (Chromium), но Inte rnet Explorer не может установить к нему безопасное соединение. Поэтому я предполагаю, что HttpWebRequest использует ту же «механику», что и Inte rnet Explorer, но я не могу понять, какой именно.
На https://server.cryptomix.com/secure/ Я гарантировал, что не не представлен клиентский SSL-сертификат. Это означает, что мне не нужно добавлять ClientCertificate к запросу.
Вот мой весь тестовый код:
public static void Main()
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
ServicePointManager.Expect100Continue = true;
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(@"https://netmap.vodafone.de"));
request.Method = "GET";
request.ContentType = "text/json";
try
{
using (var response = (HttpWebResponse)request.GetResponse())
{
}
}
catch (Exception e)
{
throw;
}
}
У вас есть идеи, почему я могу подключиться к Inte rnet Explorer и HttpWebRequest, но с Firefox это возможно?
Вы получаете ту же ошибку при запуске кода?
Изменить: я обнаружил, что веб-сайт использует TLS 1.3, но нет значения перечисления SecurityProtocolType.Tls13.