
Proxy HTTP/HTTPS em um único script Python
Proxy HTTP/HTTPS em um único script Python
Este script funciona com Python 2.7. Você precisa instalar o OpenSSL para interceptar conexões HTTPS.
Basta executar como um script:
$ python proxy2.py
O comando acima executa o proxy em localhost:8080. Verifique se funciona digitando o comando abaixo em outro terminal da mesma máquina.
$ http_proxy=localhost:8080 curl http://www.example.com/
proxy2 foi feito para depuração/testes, portanto só aceita conexões de localhost.
Para usar outra porta, especifique o número da porta como primeiro argumento.
$ python proxy2.py 3128
Para interceptar conexões HTTPS, gere chaves privadas e um certificado de CA privado:
$ ./setup_https_intercept.sh
Através do proxy, você pode acessar http://proxy2.test/ e instalar o certificado da CA nos navegadores.
Você pode facilmente personalizar o proxy e modificar as requisições/respostas ou salvar algo em arquivos. A classe ProxyRequestHandler tem 3 métodos para personalizar:
Por padrão, apenas save_handler é implementado, o que exibe cabeçalhos HTTP(S) e alguns dados úteis na saída padrão.