Razbezhkin
@Razbezhkin
программист, преподаватель

Как HttpClient'ом через прокси обращаться к https сайту так, чтобы шифрование было только между прокси и сайтом?

Еще разок о задаче:
нужно чтобы HttpClient до Прокси сервера обращался без шифрования и всяких проверок корректности SSL/TLS, прокси-сервер сам устанавливал https - соединение с сайтом и передавал в приложение данные без шифрования.

я написал такой код:

WebProxy proxy = new WebProxy()
        {
            Address = new Uri("http://192.168.1.173:3128"),
            BypassProxyOnLocal = false,
            UseDefaultCredentials = false,
        };

        HttpClientHandler ch = new HttpClientHandler();
        ch.Proxy = proxy;
        ch.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
        ch.SslProtocols = SslProtocols.None;

        HttpClient cli = new HttpClient(ch, true);

        string data = await cli.GetStringAsync("https://ya.ru");
        Console.WriteLine($"Test got bytes: {data.Length}");

        string url =  "https://api.boxberry.ru";
        data = await cli.GetStringAsync(url);//тут AuthenticationException: "Authentication failed because the remote party sent a TLS alert: 'HandshakeFailure'"
        Console.WriteLine($"{url} got bytes: {data.Length}");


Этот код запускался на двух разных компьютерах с разными настройками ОС
В результате выполнения данные от Ссылка удалена модератором. получены успешно на обоих клиентах, а при попытке обратиться к Ссылка удалена модератором. возникает исключение на одном из компов.

отсюда я делаю вывод, что HttpClient при работе с прокси использует SSL/TLS, а как заставить устанавливать шифрование только прокси, а HttpClient с Proxy заставить соединяться без шифрования и прочих SSL-глупостей.
  • Вопрос задан
  • 285 просмотров
Пригласить эксперта
Ответы на вопрос 1
@pkrich
Добрый день! Проще всего использовать STunnel. Я сам использую это решение для подключения старых почтовых клиентов к шифрованным конечным точкам.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы