
Proxy HTTP/HTTPS dans un seul script python
Proxy HTTP/HTTPS dans un seul script python
Ce script fonctionne avec Python 2.7. Vous devez installer OpenSSL pour intercepter les connexions HTTPS.
Exécutez-le simplement comme un script :
$ python proxy2.py
La commande ci-dessus exécute le proxy sur localhost:8080. Vérifiez qu'il fonctionne en tapant la commande ci-dessous dans un autre terminal du même hôte.
$ http_proxy=localhost:8080 curl http://www.example.com/
proxy2 est conçu pour le débogage/les tests, il n'accepte donc que les connexions provenant de localhost.
Pour utiliser un autre port, spécifiez le numéro de port comme premier argument.
$ python proxy2.py 3128
Pour intercepter les connexions HTTPS, générez des clés privées et un certificat d'autorité de certification (CA) privé :
$ ./setup_https_intercept.sh
Via le proxy, vous pouvez accéder à http://proxy2.test/ et installer le certificat CA dans les navigateurs.
Vous pouvez facilement personnaliser le proxy, modifier les requêtes/réponses ou enregistrer des données dans des fichiers. La classe ProxyRequestHandler dispose de 3 méthodes à personnaliser :
Par défaut, seule save_handler est implémentée, qui affiche les en-têtes HTTP(S) et quelques données utiles sur la sortie standard.