Как настроить https foward прокси для curl - PullRequest
0 голосов
/ 27 ноября 2018

Я сталкиваюсь с одной проблемой, но не могу найти решение в Google

Я пытаюсь использовать curl для посещения веб-сайта https за прокси-сервером, но не удается.

Это успех без прокси или посещение без ssl.Затем я развернул прокси tcp (полученный от https://github.com/kklis/proxy), и установил окружение export https_proxy=127.0.0.1:443

визит https://www.baidu.com, Я только что получил connection aborted ошибка

Вот как я запускаю прокси:

./proxy -l 8111 -h www.baidu.com -p 443

И установить прокси-среду:

export https_proxy=127.0.0.1:8111

Запустить curl:

curl -v https://www.baidu.com

Получен результат:

Восстановленный URLна: https://www.baidu.com/

Попытка 127.0.0.1 ...

Подключен к порту 127.0.0.1 (127.0.0.1) 8111 (# 0)

Установить прокси-туннель HTTP для www.baidu.com: 443

CONNECT www.baidu.com:443 HTTP / 1.1

Хост: www.baidu.com:443

User-Agent: curl / 7.47.0

Proxy-Connection: Keep-Alive

Proxy CONNECT прерван

Соединение № 0 с хостом 127.0.0.1 оставлено без изменений

curl: (56) Proxy CONNECT прерван

Я попытался добавить --insecure и неработа, тот же результат.

Я думаю, что это та же проблема, с которой кто-то встречался, но до сих пор нет ответа: https://github.com/h2non/balboa/issues/1

Спасибо, если кто-нибудь может помочь!

1 Ответ

0 голосов
/ 28 ноября 2018

Мне кажется, я знаю причину

Я перехватил пакеты, используя прокси-сервер для посещения веб-сайта https, curl запустит метод HTTP CONNECT для установки туннеля.Туннель должен находиться между клиентом curl и прокси-сервером, но TCP-прокси будет доставлять все сообщения на веб-сервер, поэтому веб-сервер будет сбрасывать соединение.

Прямой прокси-сервер должен не только доставлять сообщения между клиентом и веб-сервером.Метод HTTP CONNECT

Вместо этого я использую стандартный прокси-сервер foward, затем успех.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...