
Proxy HTTP/HTTPS en un único script de Python
Proxy HTTP/HTTPS en un único script de Python
Este script funciona con Python 2.7. Necesitas instalar OpenSSL para interceptar conexiones HTTPS.
Simplemente ejecútalo como un script:
$ python proxy2.py
El comando anterior ejecuta el proxy en localhost:8080. Verifica que funciona escribiendo el siguiente comando en otra terminal de la misma máquina.
$ http_proxy=localhost:8080 curl http://www.example.com/
proxy2 está hecho para depuración/pruebas, por lo que solo acepta conexiones de localhost.
Para usar otro puerto, especifica el número de puerto como primer argumento.
$ python proxy2.py 3128
Para interceptar conexiones HTTPS, genera claves privadas y un certificado de CA privado:
$ ./setup_https_intercept.sh
A través del proxy, puedes acceder a http://proxy2.test/ e instalar el certificado CA en los navegadores.
Puedes personalizar fácilmente el proxy y modificar las peticiones/respuestas o guardar algo en los archivos. La clase ProxyRequestHandler tiene 3 métodos para personalizar:
Por defecto, solo save_handler está implementado, el cual muestra las cabeceras HTTP(S) y algunos datos útiles en la salida estándar.