Кто-то учил дотнетовский http client работать с гост подключением?
Например
https://testgost2012.cryptopro.ru/
Здравствуйте, BlackEric, Вы писали:
BE>Кто-то учил дотнетовский http client работать с гост подключением?
BE>Например https://testgost2012.cryptopro.ru/
Код:
using (System.Net.Http.HttpClient client = new System.Net.Http.HttpClient())
{
Console.WriteLine(System.Text.Encoding.GetEncoding(1251).GetString(client.GetByteArrayAsync("https://testgost2012.cryptopro.ru/").Result));
}
Результат:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="ru">
<title>Тестовая страница для установления защищенного соединения с сервером с односторонней аутентификацией</title>
<body>
<h3>Защищенное соединение с сервером, с использованием односторонней аутентификации - установлено.</h3>
Алгоритм открытого ключа сертификата сервера:
<UL>
<li> ГОСТ Р 34.10-2012 512 бит - если браузер клиента поддерживает ГОСТ TLS
<li> RSA 2048 бит - если браузер клиента не поддерживает ГОСТ TLS
</UL>
</body>
</html>
Но это .NET FW 4.5+ (не Core) и Windows 10, а у Вас какая ОС и версия .NET?
Здравствуйте, BlackEric, Вы писали:
BE>У меня 5 дотнет под виндой. И не работает. Не знаю почему. Буду пробовать на фреймворке.
Пробуй отключить валидацию серверного сертификата:
HttpClientHandler handler = new()
{
ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator
};
using (var client = new HttpClient(handler))
{
// запрос страницы
}
Если так заработает, значит нужно корневой сертификат CryptoPro Root CA установить.