Charles Proxy — wat is het, configuratie en HTTPS-verkeer onderscheppen

Auteur: IT Sectr Gepubliceerd: 2026-05-08 Leestijd: 8 min

Charles Proxy is een cross-platform proxyserver voor het debuggen van HTTP/HTTPS-verkeer, gebruikt door ontwikkelaars om netwerkverzoeken te onderscheppen, bekijken en wijzigen. Volgens Karl von Randow, maker van de tool (2025), wordt Charles sinds 2004 gebruikt in meer dan 50.000 bedrijven wereldwijd. Proxy ondersteunt het onderscheppen van verkeer van mobiele apparaten via WiFi, HTTPS-proxy met installatie van het rootcertificaat en een breed scala aan tools voor API-analyse.

Kernpunten

  • Charles Proxy — een HTTP/HTTPS-proxyserver voor het onderscheppen en analyseren van netwerkverkeer met geavanceerde debugmogelijkheden
  • HTTPS-proxy wordt geïmplementeerd door het Charles-rootcertificaat op het apparaat te installeren, waardoor versleuteld verkeer kan worden bekeken
  • Rewrite en Breakpoints — krachtige tools voor het ter plekke wijzigen van verzoeken en antwoorden zonder server- of clientcode te veranderen
  • Map Local en Map Remote maken het mogelijk netwerkbronnen te vervangen door lokale bestanden of alternatieve servers voor testdoeleinden
  • Throttle — simulatie van trage en onstabiele netwerkverbindingen om het gedrag van de app bij slechte connectiviteit te testen

Wat is Charles Proxy?

Charles Proxy is een HTTP-proxy en HTTP-monitor die fungeert als tussenpersoon tussen client en server. Alle verzoeken en antwoorden passeren Charles, waardoor u de inhoud kunt bekijken, de structuur kunt analyseren, gegevens in realtime kunt wijzigen en verschillende netwerkomstandigheden kunt simuleren. Beschikbaar voor Windows, macOS en Linux.

Geschiedenis en positionering

Charles Proxy is gemaakt in 2004 door Karl von Randow en blijft een van de populairste tools voor het debuggen van netwerkverkeer. In tegenstelling tot gratis alternatieven biedt Charles een betaalde licentie met een proefperiode van 30 dagen. De tool wordt gepositioneerd als een professionele oplossing voor mobiele app-ontwikkelaars, webontwikkelaars en QA-ingenieurs die volledige controle over HTTP-communicatie nodig hebben.

Platformcompatibiliteit

Charles werkt als een systeemproxy op de computer en kan verkeer onderscheppen van alle apparaten in hetzelfde netwerk: Android, iOS, simulators, emulators, webbrowsers en IoT-apparaten. Voor HTTPS-onderschepping moet u het Charles-rootcertificaat op elk apparaat installeren. Verkeer wordt ondersteund op HTTP/1.1 en HTTP/2 (gedeeltelijk). HTTP/3 (QUIC) wordt niet ondersteund op onderscheppingsniveau.

Hoe werkt Charles Proxy

Charles werkt volgens het MITM (Man-in-the-Middle)-proxyprincipe: wanneer een client een verzoek via Charles verzendt, onderschept de tool dit verzoek, stuurt het door naar de doelserver, ontvangt het antwoord en geeft het terug aan de client. Al het verkeer passeert Charles, wat analyse en wijziging mogelijk maakt.

Proxy-architectuur

Bij het opstarten maakt Charles een lokale HTTP-proxy op poort 8888 (standaard). Het besturingssysteem of de applicatie wordt geconfigureerd om deze proxy te gebruiken. Alle HTTP-verzoeken worden eerst naar Charles gestuurd, die vervolgens als volledige client voor de doelserver fungeert. Voor HTTPS gebruikt Charles zijn eigen SSL-proxyingtechniek: het genereert ter plaatse een certificaat voor elk domein, ondertekend door het Charles-rootcertificaat. Als het rootcertificaat als vertrouwd op het apparaat is geïnstalleerd, kan Charles HTTPS-verkeer ontsleutelen en bekijken.

Werkmodi

Charles ondersteunt twee modi: Proxy (klassieke proxyserver) en SOCKS Proxy (voor UDP- en TCP-verkeer). Voor webontwikkeling wordt de standaard HTTP-proxy gebruikt. Voor mobiele apparaten — WiFi Proxy-configuratie op het apparaat met opgave van het IP-adres van de computer waarop Charles draait. MacOS ondersteunt automatische proxyconfiguratie voor de iOS-simulator.

xml
<!-- Configuratie van network_security_config.xml voor Android met Charles-ondersteuning -->
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <!-- Vertrouw het Charles-certificaat in Debug-build -->
            <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>

Belangrijkste functies van Charles Proxy

Charles Proxy biedt een set professionele tools voor verkeersanalyse en -wijziging die ver verder gaan dan eenvoudige verzoekonderschepping.

Rewrite en Breakpoints

De Rewrite-tool maakt automatische wijziging van bepaalde delen van verzoeken of antwoorden mogelijk: headers, URL-parameters, antwoordbody. U kunt bijvoorbeeld de User-Agent-header vervangen door een waarde van een ander apparaat of specifieke cookies verwijderen. Breakpoints werken als een debugger: het verzoek wordt gepauzeerd in een geselecteerd stadium (vóór verzenden of vóór ontvangen) en de ontwikkelaar kan de inhoud handmatig wijzigen voordat het verder gaat. Dit is handig voor het testen van foutafhandeling of niet-standaard statussen.

Map Local en Map Remote

Map Local maakt het mogelijk een netwerkbron (CSS, JS, JSON) te vervangen door een lokaal bestand op schijf. Dit is onmisbaar bij frontend-ontwikkeling: u kunt CSS/JS wijzigen en direct het resultaat zien zonder implementatie op een server. Map Remote verwijst verzoeken van de ene URL naar de andere — bijvoorbeeld van de productieserver naar staging voor testen. Beide tools werken met URL-patronen met ondersteuning voor wildcards.

Throttle en simulatie van netwerkomstandigheden

De Throttle-tool simuleert verschillende soorten netwerkverbindingen met behulp van vooraf ingestelde profielen: 3G, EDGE, GPRS, DSL, WiFi. U kunt snelheidslimieten (download/upload), latentie, pakketverlies en stabiliteit configureren. Dit is cruciaal voor het testen van app-gedrag bij trage of onstabiele verbindingen — correcte afhandeling van time-outs, herhaalpogingen, offline modus.

ProfielDownloadUploadLatentieTypisch scenario
3G780 kbps330 kbps200 msTesten met zwak mobiel signaal
EDGE130 kbps50 kbps400 msExtreem trage verbinding
GPRS50 kbps20 kbps500 msMinimaal mogelijke verbinding
DSL2 Mbps256 kbps50 msThuis bekabelde verbinding
WiFi10 Mbps10 Mbps10 msGoede WiFi-verbinding

Auto Save en Recording

Charles kan verkeerssessies automatisch opslaan in .chls-bestanden, wat latere analyse of delen met collega's mogelijk maakt. Recording Control biedt flexibele configuratie van welk verkeer moet worden opgeslagen: per domein, inhoudstype, statuscode. Dit is handig voor langetermijnmonitoring van de API.

Charles Proxy instellen voor mobiele apparaten

Voor het debuggen van mobiele app-verkeer wordt Charles geconfigureerd als een WiFi Proxy: alle apparaten in hetzelfde netwerk als de computer kunnen verkeer via Charles routeren. Correcte HTTPS-configuratie vereist installatie van het Charles-certificaat op het mobiele apparaat.

Instellen op Android

Voor Android: open Instellingen → WiFi → Geavanceerd → Proxy, selecteer Handmatig en voer het IP-adres van de computer met poort 8888 in. Open vervolgens de browser op het apparaat en ga naar http://chls.pro/ssl om het Charles-certificaat te downloaden. Op Android 7+ (API 24+) is network_security_config.xml vereist om gebruikerscertificaten te vertrouwen in Debug-builds — anders kan de app verkeer weigeren via Charles te routeren.

Instellen op iOS

Voor iOS: Instellingen → WiFi → configureer proxy naar IP en poort 8888. Vervolgens Safari → http://chls.pro/ssl → installeer certificaatprofiel. Op iOS 10.3+ moet u certificaatvertrouwen inschakelen: Instellingen → Algemeen → Over → Certificaatvertrouwensinstellingen → schakel Charles Proxy in. iOS is strenger met certificaten: sommige apps kunnen SSL Pinning gebruiken, wat verkeer via Charles blokkeert, zelfs met een vertrouwd certificaat.

SSL Pinning-problemen oplossen

Als de app SSL Pinning (servercertificaat vastpinnen) gebruikt, werkt standaard proxy via Charles niet — de app wijst het Charles-certificaat af. Oplossingen: schakel SSL Pinning uit in Debug-builds via OkHttp- of URLSession-instellingen, gebruik Frida om pinning tijdens runtime te omzeilen, of gebruik Android Emulator met root-toegang.

Praktische gebruiksscenario’s van Charles Proxy

Charles Proxy lost specifieke ontwikkel- en testtaken op. Laten we de meest voorkomende scenario's bekijken waarin de tool onmisbaar is.

Debuggen van API-integratie

Het meest voorkomende scenario — controleren van de juistheid van API-verzoeken. Charles toont de exacte URL van het verzoek, headers, body, parameters. Als de server een onverwacht antwoord retourneert, zijn direct zichtbaar: JSON-structuur, foutcode, antwoordheaders. Dit maakt het mogelijk om client-side fouten van server-side fouten te onderscheiden zonder logs van beide kanten.

Testen met trage verbinding

Met Throttle-profielen kunt u testen hoe de app zich gedraagt bij lage verbindingssnelheid: of een laadindicator wordt weergegeven, of time-outs correct worden afgehandeld, of de UI vastloopt bij verbindingsverlies. Het testen van caching is bijzonder belangrijk — als gegevens al zijn geladen, moet de app deze uit de cache tonen in plaats van in oneindig laden te gaan.

Serverantwoorden bewerken

Met Breakpoints kunt u het serverantwoord wijzigen voordat het naar de app wordt verzonden. Bijvoorbeeld een lege array retourneren in plaats van gegevens, de statuscode wijzigen naar 500, een nieuw veld toevoegen aan JSON. Dit maakt het testen van randgevalafhandeling mogelijk zonder servercode te wijzigen — een van de krachtigste toepassingen van Charles in mobiele ontwikkeling.

Veelgestelde vragen

Is Charles Proxy gratis?

Charles Proxy is een commercieel product met een proefperiode van 30 dagen. Na afloop van de proefperiode blijft het programma werken met een pauze van 30 minuten bij elke start. Licentiekosten zijn $50 per exemplaar. Er bestaan gratis alternatieven, zoals Proxyman (macOS) en mitmproxy (cross-platform).

Kan ik verkeer van de iOS-simulator onderscheppen?

Ja, de iOS-simulator gebruikt automatisch de macOS-systeemproxy. Start gewoon Charles en schakel SSL-proxy in — al het verkeer van de simulator wordt onderschept. Certificaatinstelling voor de simulator gebeurt automatisch; u hoeft alleen het Charles-certificaat te vertrouwen in de macOS-sleutelhanger.

Hoe verschilt Charles van Proxyman?

Belangrijkste verschillen: Charles is cross-platform (Windows, macOS, Linux), Proxyman — alleen macOS en iOS. Charles heeft een bredere set tools (Rewrite, Map Local, Repeat, Auto Save) maar is betaald. Proxyman is gratis voor basisfunctionaliteit, met een moderne interface en native integratie met de iOS-simulator.

Hoe beïnvloedt Charles Proxy de prestaties?

Charles voegt latentie toe wanneer verkeer door de proxy gaat, vooral bij actieve SSL-proxy (ontsleuteling/versleuteling). Op moderne computers is de latentie 5–15 milliseconden per verzoek. Voor prestatietests wordt aanbevolen SSL-proxy uit te schakelen voor statische bronnen (CSS, JS, afbeeldingen) via Recording Control.

Hoe exporteer ik een sessie uit Charles?

Charles ondersteunt export naar formaten: .chls (eigen formaat, voor heropenen in Charles), HAR (HTTP Archive, opent in browsers en andere tools), CSV (voor verwerking in Excel of spreadsheets), Trace (voor export van een specifiek verzoek in curl-compatibel formaat). Export via het menu File → Export Session.

Samenvatting

  • Charles Proxy is een professionele HTTP/HTTPS-proxyserver voor het onderscheppen, bekijken en wijzigen van netwerkverkeer sinds 2004
  • Werkingsprincipe — MITM-proxy: alle verzoeken passeren Charles, wat analyse en wijziging ter plekke mogelijk maakt
  • Krachtige tools: Rewrite, Breakpoints, Map Local, Map Remote, Throttle — voor uitgebreide API-debugging en gebruikerservaringstesten
  • HTTPS-proxy vereist installatie van het Charles-rootcertificaat op het apparaat, en voor Android 7+ — network_security_config.xml in Debug-builds
  • Throttle-profielen maken simulatie mogelijk van 3G, EDGE, DSL en andere verbindingstypen voor het testen van app-gedrag in reële omstandigheden
  • Sessie-export naar HAR-, CSV- en .chls-formaten voor analyse, rapportage en delen met het team
  • Overweeg voor projecten met een beperkt budget gratis alternatieven: Proxyman (macOS) of mitmproxy (cross-platform open-source)

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook