Прокси-аутентификация с s_client

Примечание: это не дубликат openssl s_client с использованием прокси , поскольку меня особенно интересует аутентификация через прокси, а не возможность использовать прокси.

Я использую openssl s_client для проверки сертификатов целевого сервера, чтобы понять, как / где работает соединение или нет. Поскольку я использую корпоративный прокси-сервер, я могу указать прокси-сервер с помощью флага -proxy, однако мне нужно передать данные аутентификации (имя пользователя / пароль) этому прокси - и я не понял, как это сделать.

openssl s_client -proxy my.proxy.server:8080 -connect my.target.host

успешно подключиться к прокси-серверу, однако по понятным причинам приводит к ошибке s_client: HTTP CONNECT failed: 407 Unauthorized.

Передача прокси-сервера в форме user:[email protected] или http://user:[email protected] приводит к ошибке s_client: -proxy argument malformed or ambiguous.

Как передать s_client аутентификацию прокси? Мне было бы трудно поверить, что он поддерживает прокси, но не аутентифицированный прокси.

Я использую openssl версии 1.1.1a.


person Aleks G    schedule 13.05.2019    source источник


Ответы (3)


Вы можете использовать выход из интрасети https://github.com/quaddy-services/escape-from-intranet#introduction

и указать

хост = my.proxy.server
порт = 8080

в приложении и используйте

openssl s_client -proxy localhost:3128 -connect my.target.host

и ваше локальное запущенное приложение обогатит реальный прокси-вызов вашими учетными данными.

(Если у вас прозрачный прокси, вам нужно переключить решение прокси по умолчанию на ПРОКСИ в Меню решений)

person Stefan Cordes    schedule 21.12.2020

openssl v3.0 поддерживает параметры proxy_user и proxy_pass.

на данный момент нет решения, синтаксис после прокси-сервера

 host + ':' + service
 host + ':' + '*'
 host + ':'
        ':' + service  
 '*'  + ':' + service
 host
 service

ср. BIO_parse_hostserv

person Arnaud Grandville    schedule 22.06.2021

Просто чтобы продолжить ответ @Arnaud Grandville: теперь выпущена бета-версия 1 OpenSSL v3, которая включает параметры аутентификации прокси. Однако вам придется скомпилировать его самостоятельно.

К сожалению, в v3 beta 1 с кодом HTTP были некоторые проблемы, поэтому вы не можете использовать код с их веб-сайта как есть. Любой, кто хочет выполнить компиляцию из исходного кода, может использовать приведенные ниже команды, чтобы получить установку OpenSSL с работающей аутентификацией прокси:

git clone --branch openssl-3.0.0-beta1 https://github.com/openssl/openssl.git
cd openssl
git fetch
git checkout 6a1f9cd -- crypto/http/http_client.c
./Configure
make
make install
person justdan96    schedule 13.07.2021