У нас есть haproxy для выполнения двустороннего (взаимного) TLS для TCP-соединений через SOCKS-прокси. Это установка:
клиент --> haproxy --> socks прокси (шлюз) --> Интернет --> сервер
Это конфигурация haproxy:
Глобальный
log stdout формат iso local7 отладка
значения по умолчанию
журнал глобальный
режим TCP
опция tcplog
максконн 10
тайм-аут подключения 5000
тайм-аут клиента 50000
тайм-аут сервера 50000
опция tcp-check
слушать ssl-over-socks-1080
привязать 0.0.0.0:1080
сервер ssl_over_socks example.com:10000 ssl crt /cert/client.pem ca-file /cert/server.pem проверить требуемый socks4 1.2.3.4:1080 проверить между 30000 fastinter 1000
Эта настройка отлично работает для TCP+TLS через прокси-сервер SOCKS.
Теперь мы хотим настроить haproxy для использования HTTP+TLS через HTTP-прокси:
клиент --> haproxy --> http прокси (шлюз) --> Интернет --> сервер
На данный момент конфигурация выглядит так:
Глобальный
log stdout формат iso local7 отладка
значения по умолчанию
журнал глобальный
режим http
опция httplog
максконн 10
тайм-аут подключения 5000
тайм-аут клиента 50000
тайм-аут сервера 50000
опция tcp-check
слушать ssl-через-прокси-1080
привязать 0.0.0.0:1080
сервер ssl_over_http example.com:20000 ssl crt /cert/client.pem ca-file /cert/server.pem проверить требуемый socks4 1.2.3.4:8080 проверить проверить через-socks4 между 30000 fastinter 1000
Мы получаем следующий вывод от haproxy:
Сервер ssl-over-proxy-1080/ssl_over_http ВЫКЛЮЧЕН, причина: неверный ответ уровня 6, информация: «Прокси-сервер SOCKS4 отклоняет запрос на начальном этапе подключения tcp-check», продолжительность проверки: 3 мс. Осталось 0 активных и 0 резервных серверов. 0 активных сессий, 0 в очереди, 0 в очереди.
Я вижу, что параметр socks4 в конфигурации может быть неправильным. Однако я не смог найти эквивалент параметра socks4 для HTTP-соединений в документации haproxy.
С Apache httpd мы можем использовать следующую конфигурацию:
ProxyRemote "*" https://1.2.3.4:8080
Проксипасс / https://example.com:20000
Как мы можем настроить haproxy для передачи http-запроса через другой http-прокси?