
Proxy MITM HTTP/HTTPS basé sur Go avec interception HTTP/2 et HTTP/1.1, génération de certificats CA locale/par hôte, tunneling CONNECT/WebSocket, mise en cache sur disque, tableau de bord d'administration, capture de trafic, politiques de blocage, et analyse des menaces facultative basée sur l'IA avec rédaction, mise en quarantaine et journalisation d'audit.
Un proxy HTTP/HTTPS Man‑in‑the‑Middle (MITM) léger et convivial pour les développeurs, écrit en Go. Il prend en charge HTTP/1.1 et HTTP/2, les tunnels CONNECT, le tunneling WebSocket (ws/wss), la mise en cache des réponses sur disque avec des filtres flexibles, et le rechargement à chaud de la configuration.

Go MITM Proxy est un proxy d’interception conçu pour le débogage, les tests, l’apprentissage et l’interception contrôlée du trafic HTTP(S). Lorsque le mode MITM est activé, il génère dynamiquement des certificats feuilles par hôte signés par une autorité de certification (AC) locale, ce qui permet au proxy de déchiffrer et d’inspecter le trafic HTTPS. Il peut également fonctionner comme un tunnel TCP transparent lorsque le MITM est désactivé ou pour les domaines/ports exclus.
Important : Cette application effectue une interception Man-in-the-Middle (MITM) active, y compris la génération et l’utilisation de certificats TLS pour déchiffrer le trafic HTTPS. Selon votre juridiction et votre environnement réseau, intercepter le trafic sans consentement clair et préalable de tous les utilisateurs concernés peut être illégal et peut violer la vie privée, les politiques de l’entreprise ou les exigences réglementaires.
Avant d’utiliser ce logiciel dans un environnement autre que votre propre machine locale :
Tous les utilisateurs d’un réseau où ce proxy peut intercepter du trafic doivent être clairement informés que l’interception et l’inspection HTTP(S) auront lieu. Le consentement doit être explicite et, idéalement, documenté.
N’exécutez pas ce logiciel sur des réseaux dont vous n’êtes pas propriétaire, que vous n’administrez pas, ou pour lesquels vous n’avez pas d’autorisation explicite de tester ou de surveiller.
De nombreuses régions ont des lois strictes régissant l’interception, la journalisation et le stockage des données des utilisateurs (par ex. RGPD, CCPA, lois sur les écoutes téléphoniques). Vous êtes responsable de veiller à ce que votre utilisation soit conforme à toutes les réglementations applicables.
La clé privée de l’AC générée (généralement ca-key.pem) permet à son détenteur d’usurper l’identité de n’importe quel domaine pour les utilisateurs qui font confiance au certificat correspondant.
Ce proxy est conçu pour le développement, le débogage, les tests contrôlés ou l’éducation — pas pour la surveillance discrète ou la surveillance non autorisée.
En utilisant ce logiciel, vous reconnaissez et acceptez l’entière responsabilité de veiller à ce que votre utilisation soit légale, éthique et correctement communiquée à tous les utilisateurs concernés.
Prérequis :
Clonez et compilez : ```bash git clone https://github.com/Welfordian/mitm-proxy.git cd mitm-proxy go build ./
Cela produit un binaire mitm-proxy (ou mitm-proxy.exe sous Windows) dans la racine du projet.
## Démarrage rapide
1) Exécutez le proxy avec les paramètres par défaut (écoute sur :8080): ```bash
./mitm-proxy
Au premier démarrage, une autorité de certification (AC) locale sera créée et enregistrée dans ca-cert.pem et ca-key.pem.
Configurez votre navigateur ou curl pour utiliser le proxy à l’adresse http://localhost:8080.
Approuvez le certificat d’AC généré (ca-cert.pem) dans votre système d’exploitation/navigateur pour autoriser l’interception HTTPS. Voir Approuver l’AC locale.
Visitez un site HTTPS via le proxy et observez les journaux. Utilisez le mode verbeux pour plus de détails : ```bash ./mitm-proxy --verbose
## Usage
### Options de la ligne de commande
- --config string: Chemin vers le fichier config.json
- --listen string: Adresse d'écoute (remplace la configuration)
- --ca-cert string: Chemin vers le certificat CA existant (remplace la configuration)
- --ca-key string: Chemin vers la clé CA existante (remplace la configuration)
- --mitm bool: Active l'interception MITM (par défaut true ; définir sur false force le tunneling)
- --verbose bool: Active la journalisation détaillée
- --watch-config bool: Surveille le fichier config.json pour détecter les changements et les applique automatiquement (par défaut true)
- --admin-enabled bool: Active l'API/le tableau de bord d'administration local (par défaut true)
- --admin-addr string: Adresse d'écoute de l'API/du tableau de bord d'administration (par défaut 127.0.0.1:9090)
- --admin-token string: Jeton porteur d'administration (généré au démarrage si omis)
- --admin-read-token string: Jeton porteur en lecture seule pour l'accès d'administration GET/HEAD/OPTIONS
- --admin-ui bool: Sert l'interface d'administration intégrée (par défaut true)
- --admin-store string: Chemin du stockage SQLite d'administration (par défaut dashboard.db)
Les options CLI remplacent les valeurs du fichier de configuration lorsque cela est indiqué.
### Configuration (config.json)