
HTTP/HTTPS прокси в одном python-скрипте
HTTP/HTTPS прокси в одном python-скрипте
Скрипт работает на Python 2.7. Для перехвата HTTPS-соединений необходимо установить OpenSSL.
Просто запустите как скрипт:
$ python proxy2.py
Указанная выше команда запускает прокси на localhost:8080. Проверьте его работу, выполнив следующую команду в другом терминале того же хоста.
$ http_proxy=localhost:8080 curl http://www.example.com/
proxy2 создан для отладки/тестирования, поэтому он принимает подключения только с localhost.
Чтобы использовать другой порт, укажите номер порта первым аргументом.
$ python proxy2.py 3128
Чтобы перехватывать HTTPS-соединения, сгенерируйте приватные ключи и приватный CA-сертификат:
$ ./setup_https_intercept.sh
Через прокси вы можете открыть http://proxy2.test/ и установить CA-сертификат в браузеры.
Вы можете легко настроить прокси и изменять запросы/ответы или сохранять что-либо в файлы. Класс ProxyRequestHandler имеет 3 метода для настройки:
По умолчанию реализован только save_handler, который выводит заголовки HTTP(S) и некоторые полезные данные в стандартный поток вывода.