Charles Proxy — ce que c'est, configuration et interception du trafic HTTPS

Auteur : IT Sectr Publié le : 2026-05-08 Temps de lecture : 8 min

Charles Proxy est un serveur proxy multiplateforme pour le débogage du trafic HTTP/HTTPS, utilisé par les développeurs pour intercepter, visualiser et modifier les requêtes réseau. Selon Karl von Randow, créateur de l'outil (2025), Charles est utilisé dans plus de 50 000 entreprises dans le monde depuis 2004. Le proxy prend en charge l'interception du trafic depuis les appareils mobiles via WiFi, le proxy HTTPS avec installation de certificat racine et un large ensemble d'outils pour l'analyse d'API.

Points essentiels

  • Charles Proxy est un serveur proxy HTTP/HTTPS pour intercepter et analyser le trafic réseau avec des capacités de débogage avancées
  • Le proxy HTTPS est implémenté en installant le certificat racine de Charles sur l'appareil, permettant de visualiser le trafic chiffré
  • Rewrite et Breakpoints sont des outils puissants pour modifier les requêtes et réponses à la volée sans changer le code du serveur ou du client
  • Map Local et Map Remote permettent de remplacer les ressources réseau par des fichiers locaux ou des serveurs alternatifs pour les tests
  • Throttle simule des connexions réseau lentes et instables pour tester le comportement de l'application dans des conditions de connectivité médiocre

Qu'est-ce que Charles Proxy ?

Charles Proxy est un proxy HTTP et moniteur HTTP qui agit comme intermédiaire entre le client et le serveur. Toutes les requêtes et réponses passent par Charles, permettant de visualiser leur contenu, d'analyser leur structure, de modifier les données en temps réel et de simuler diverses conditions réseau. Il est disponible pour Windows, macOS et Linux.

Historique et positionnement

Charles Proxy a été créé en 2004 par Karl von Randow et reste l'un des outils les plus populaires pour le débogage du trafic réseau. Contrairement aux alternatives gratuites, Charles propose une licence payante avec une période d'essai de 30 jours. L'outil se positionne comme une solution professionnelle pour les développeurs d'applications mobiles, les développeurs web et les ingénieurs QA qui ont besoin d'un contrôle total sur les communications HTTP.

Compatibilité des plateformes

Charles fonctionne comme un proxy système sur l'ordinateur et peut intercepter le trafic de tout appareil sur le même réseau : Android, iOS, simulateurs, émulateurs, navigateurs web et appareils IoT. Pour intercepter HTTPS, vous devez installer le certificat racine de Charles sur chaque appareil. Le trafic est pris en charge sur HTTP/1.1 et HTTP/2 (partiellement). HTTP/3 (QUIC) n'est pas pris en charge au niveau de l'interception.

Comment fonctionne Charles Proxy

Charles fonctionne sur le principe d'un proxy MITM (Man-in-the-Middle) : lorsqu'un client envoie une requête via Charles, l'outil intercepte la requête, la transmet au serveur cible, reçoit la réponse et la renvoie au client. Tout le trafic passe par Charles, ce qui permet de l'analyser et de le modifier.

Architecture du proxy

Au lancement, Charles crée un proxy HTTP local sur le port 8888 (par défaut). Le système d'exploitation ou l'application est configuré pour utiliser ce proxy. Toutes les requêtes HTTP sont d'abord envoyées à Charles, qui agit ensuite comme un client complet vers le serveur cible. Pour HTTPS, Charles utilise sa propre technique de proxy SSL : il génère un certificat à la volée pour chaque domaine, signé par le certificat racine de Charles. Si le certificat racine est installé sur l'appareil comme étant de confiance, Charles peut déchiffrer et visualiser le trafic HTTPS.

Modes de fonctionnement

Charles prend en charge deux modes : Proxy(serveur proxy classique) et SOCKS Proxy(pour le trafic UDP et TCP). Pour le développement web, on utilise le proxy HTTP standard. Pour les appareils mobiles — configurer le WiFi Proxy sur l'appareil en indiquant l'adresse IP de l'ordinateur exécutant Charles. macOS prend en charge la configuration automatique du proxy pour le simulateur iOS.

xml
<!-- Configuration de network_security_config.xml pour Android avec prise en charge de Charles -->
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <!-- Faire confiance au certificat de Charles dans la version Debug -->
            <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>

Principales fonctionnalités de Charles Proxy

Charles Proxy fournit un ensemble d'outils professionnels pour analyser et modifier le trafic, bien au-delà de la simple interception de requêtes.

Rewrite et Breakpoints

L'outil Rewrite permet de modifier automatiquement certaines parties des requêtes ou réponses : en-têtes, paramètres d'URL, corps de la réponse. Par exemple, vous pouvez remplacer l'en-tête User-Agent par une valeur d'un autre appareil ou supprimer certains cookies. Breakpoints fonctionne comme un débogueur : la requête s'arrête à une étape sélectionnée (avant l'envoi ou avant la réception), et le développeur peut modifier manuellement son contenu avant qu'elle ne continue. Ceci est utile pour tester le traitement des réponses d'erreur ou des états non standard.

Map Local et Map Remote

Map Local permet de remplacer une ressource réseau (CSS, JS, JSON) par un fichier local du disque. C'est indispensable dans le développement frontend : vous pouvez modifier CSS/JS et voir le résultat immédiatement sans déployer sur un serveur. Map Remote redirige les requêtes d'une URL vers une autre — par exemple, du serveur de production vers staging pour les tests. Les deux outils fonctionnent avec des motifs d'URL prenant en charge les jokers.

Throttle et simulation de conditions réseau

L'outil Throttle permet de simuler différents types de connexions réseau à l'aide de profils prédéfinis : 3G, EDGE, GPRS, DSL, WiFi. Vous pouvez configurer la limite de vitesse (téléchargement/envoi), la latence, la perte de paquets et la stabilité. C'est essentiel pour tester le comportement de l'application sur des connexions lentes ou instables — gestion correcte des timeouts, tentatives de reprise, mode hors ligne.

ProfilTéléchargementEnvoiLatenceScénario typique
3G780 kbps330 kbps200 msTest avec signal mobile faible
EDGE130 kbps50 kbps400 msConnexion extrêmement lente
GPRS50 kbps20 kbps500 msConnexion minimale possible
DSL2 Mbps256 kbps50 msConnexion filaire domestique
WiFi10 Mbps10 Mbps10 msBonne connexion WiFi

Auto Save et Recording

Charles peut enregistrer automatiquement les sessions de trafic dans des fichiers .chls, ce qui permet de les analyser ultérieurement ou de les partager avec des collègues. Recording Control permet de configurer de manière flexible le trafic à enregistrer : par domaine, type de contenu ou code d'état. C'est pratique pour la surveillance à long terme des API.

Configurer Charles Proxy pour les appareils mobiles

Pour déboguer le trafic des applications mobiles, Charles est configuré comme un WiFi Proxy : tous les appareils sur le même réseau que l'ordinateur peuvent acheminer le trafic via Charles. Une configuration correcte de HTTPS nécessite l'installation du certificat de Charles sur l'appareil mobile.

Configuration sur Android

Pour Android : ouvrir Settings → WiFi → Advanced → Proxy, sélectionner Manual et saisir l'adresse IP de l'ordinateur avec le port 8888. Ensuite, ouvrir un navigateur sur l'appareil et aller sur http://chls.pro/ssl pour télécharger le certificat de Charles. Sous Android 7+ (API 24+), un network_security_config.xml est nécessaire pour faire confiance aux certificats utilisateur dans les versions Debug — sinon, l'application pourrait ne pas acheminer le trafic via Charles.

Configuration sur iOS

Pour iOS : Settings → WiFi → configurer le proxy avec IP et port 8888. Ensuite Safari → http://chls.pro/ssl → installer le profil de certificat. Sous iOS 10.3+, vous devez en outre activer la confiance du certificat : Settings → General → About → Certificate Trust Settings → activer Charles Proxy. iOS est plus strict concernant les certificats : certaines applications peuvent utiliser SSL Pinning, bloquant le trafic via Charles même avec un certificat de confiance.

Résolution des problèmes de SSL Pinning

Si l'application utilise SSL Pinning(fixation du certificat serveur), le proxy standard via Charles ne fonctionnera pas — l'application rejettera le certificat de Charles. Solutions : désactiver SSL Pinning dans les versions Debug via les paramètres OkHttp ou URLSession, utiliser Frida pour contourner le pinning au moment de l'exécution, ou utiliser Android Emulator avec accès root.

Cas d'utilisation pratiques de Charles Proxy

Charles Proxy résout des tâches spécifiques de développement et de test. Examinons les scénarios les plus courants où l'outil est indispensable.

Débogage de l'intégration API

Le scénario le plus courant — vérifier l'exactitude des requêtes API. Charles affiche l'URL exacte de la requête, les en-têtes, le corps et les paramètres. Si le serveur renvoie une réponse inattendue, vous voyez immédiatement : la structure JSON, le code d'erreur, les en-têtes de réponse. Cela permet de distinguer les erreurs client des erreurs serveur sans journaux des deux côtés.

Test avec connexion lente

À l'aide des profils Throttle, vous pouvez tester le comportement de l'application avec une faible vitesse de connexion : un indicateur de chargement est-il affiché, les timeouts sont-ils correctement gérés, l'UI se fige-t-elle en cas de perte de connexion. Il est particulièrement important de tester la mise en cache — si les données sont déjà chargées, l'application doit les afficher depuis le cache plutôt que d'entrer dans un état de chargement infini.

Modification des réponses du serveur

À l'aide de Breakpoints, vous pouvez modifier la réponse du serveur avant qu'elle ne soit envoyée à l'application. Par exemple, renvoyer un tableau vide au lieu de données, changer le code d'état en 500, ajouter un nouveau champ au JSON. Cela permet de tester le traitement des cas limites sans modifier le code du serveur — l'une des utilisations les plus puissantes de Charles dans le développement mobile.

Questions fréquentes

Charles Proxy est-il gratuit ?

Charles Proxy est un produit commercial avec une période d'essai de 30 jours. Après la fin de la période d'essai, le programme continue de fonctionner avec une pause de 30 minutes à chaque démarrage. Le coût de la licence est de 50 $ par copie. Il existe des alternatives gratuites telles que Proxyman (macOS) et mitmproxy (multiplateforme).

Peut-on intercepter le trafic du simulateur iOS ?

Oui, le simulateur iOS utilise automatiquement le proxy système de macOS. Il suffit de lancer Charles et d'activer le proxy SSL — tout le trafic du simulateur sera intercepté. La configuration du certificat pour le simulateur se fait automatiquement ; vous devez seulement faire confiance au certificat de Charles dans le trousseau macOS.

En quoi Charles diffère-t-il de Proxyman ?

Principales différences : Charles est multiplateforme (Windows, macOS, Linux), Proxyman est uniquement pour macOS et iOS. Charles dispose d'un ensemble d'outils plus large (Rewrite, Map Local, Repeat, Auto Save) mais est payant. Proxyman est gratuit pour les fonctionnalités de base, avec une interface moderne et une intégration native avec le simulateur iOS.

Comment Charles Proxy affecte-t-il les performances ?

Charles ajoute de la latence lorsque le trafic passe par le proxy, surtout avec un proxy SSL actif (déchiffrement/chiffrement). Sur les ordinateurs modernes, le délai est de 5 à 15 millisecondes par requête. Pour les tests de performance, il est recommandé de désactiver le proxy SSL pour le contenu statique (CSS, JS, images) via Recording Control.

Comment exporter une session depuis Charles ?

Charles prend en charge l'exportation vers les formats : .chls(natif, pour rouvrir dans Charles), HAR(HTTP Archive, s'ouvre dans les navigateurs et autres outils), CSV(pour le traitement dans Excel ou les tableurs), Trace(pour exporter une requête spécifique dans un format compatible curl). Exportation via le menu File → Export Session.

Résumé

  • Charles Proxy est un serveur proxy HTTP/HTTPS professionnel pour intercepter, visualiser et modifier le trafic réseau depuis 2004
  • Principe de fonctionnement — proxy MITM : toutes les requêtes passent par Charles, permettant une analyse et une modification à la volée
  • Outils puissants : Rewrite, Breakpoints, Map Local, Map Remote, Throttle — pour un débogage complet d'API et de l'expérience utilisateur
  • Proxy HTTPS nécessite l'installation du certificat racine de Charles sur l'appareil, et pour Android 7+ — network_security_config.xml dans les versions Debug
  • Profils Throttle permettent de simuler la 3G, EDGE, DSL et d'autres types de connexion pour tester le comportement de l'application dans des conditions réelles
  • Exportation de sessions aux formats HAR, CSV et .chls pour l'analyse, les rapports et le partage avec l'équipe
  • Pour les projets avec un budget limité, envisagez des alternatives gratuites : Proxyman (macOS) ou mitmproxy (open source multiplateforme)

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi