Charles Proxy — Was es ist, Einrichtung und Abfangen von HTTPS-Verkehr

Autor: IT Sectr Veröffentlicht: 2026-05-08 Lesezeit: 8 Min.

Charles Proxy ist ein plattformübergreifender Proxy-Server zum Debuggen von HTTP/HTTPS-Verkehr, der von Entwicklern verwendet wird, um Netzwerkanfragen abzufangen, anzuzeigen und zu ändern. Laut Karl von Randow, dem Ersteller des Tools (2025), wird Charles seit 2004 in mehr als 50.000 Unternehmen weltweit eingesetzt. Der Proxy unterstützt das Abfangen von Datenverkehr von mobilen Geräten über WiFi, HTTPS-Proxying mit Installation eines Stammzertifikats und eine breite Palette von Werkzeugen für die API-Analyse.

Wesentliche Punkte

  • Charles Proxy ist ein HTTP/HTTPS-Proxy-Server zum Abfangen und Analysieren von Netzwerkverkehr mit erweiterten Debugging-Funktionen
  • HTTPS-Proxying wird durch die Installation des Charles-Stammzertifikats auf dem Gerät implementiert, wodurch verschlüsselter Datenverkehr angezeigt werden kann
  • Rewrite und Breakpoints sind leistungsstarke Werkzeuge zum Ändern von Anfragen und Antworten im laufenden Betrieb, ohne Server- oder Client-Code zu ändern
  • Map Local und Map Remote ermöglichen das Ersetzen von Netzwerkressourcen durch lokale Dateien oder alternative Server für Tests
  • Throttle simuliert langsame und instabile Netzwerkverbindungen, um das App-Verhalten unter schlechten Verbindungsbedingungen zu testen

Was ist Charles Proxy?

Charles Proxy ist ein HTTP-Proxy und HTTP-Monitor, der als Vermittler zwischen Client und Server fungiert. Alle Anfragen und Antworten passieren Charles, sodass Sie deren Inhalt anzeigen, die Struktur analysieren, Daten in Echtzeit ändern und verschiedene Netzwerkbedingungen simulieren können. Es ist für Windows, macOS und Linux verfügbar.

Geschichte und Positionierung

Charles Proxy wurde 2004 von Karl von Randow entwickelt und ist eines der beliebtesten Werkzeuge zum Debuggen von Netzwerkverkehr. Im Gegensatz zu kostenlosen Alternativen bietet Charles eine kostenpflichtige Lizenz mit 30-tägiger Testphase. Das Tool positioniert sich als professionelle Lösung für Mobile-App-Entwickler, Webentwickler und QA-Ingenieure, die die volle Kontrolle über HTTP-Kommunikation benötigen.

Plattformkompatibilität

Charles arbeitet als System-Proxy auf dem Computer und kann Datenverkehr von allen Geräten im selben Netzwerk abfangen: Android, iOS, Simulatoren, Emulatoren, Webbrowser und IoT-Geräte. Zum Abfangen von HTTPS muss das Charles-Stammzertifikat auf jedem Gerät installiert werden. Der Datenverkehr wird über HTTP/1.1 und HTTP/2 (teilweise) unterstützt. HTTP/3 (QUIC) wird auf Abfangebene nicht unterstützt.

Wie Charles Proxy funktioniert

Charles arbeitet nach dem Prinzip eines MITM (Man-in-the-Middle)-Proxys: Wenn ein Client eine Anfrage über Charles sendet, fängt das Tool die Anfrage ab, leitet sie an den Zielserver weiter, empfängt die Antwort und gibt sie an den Client zurück. Der gesamte Datenverkehr passiert Charles, sodass er analysiert und modifiziert werden kann.

Proxy-Architektur

Beim Start erstellt Charles einen lokalen HTTP-Proxy auf Port 8888 (Standard). Das Betriebssystem oder die Anwendung wird so konfiguriert, dass dieser Proxy verwendet wird. Alle HTTP-Anfragen werden zuerst an Charles gesendet, der dann als vollwertiger Client für den Zielserver fungiert. Für HTTPS verwendet Charles eine eigene SSL-Proxying-Technik: Es generiert für jede Domain spontan ein Zertifikat, das vom Charles-Stammzertifikat signiert wird. Wenn das Stammzertifikat auf dem Gerät als vertrauenswürdig installiert ist, kann Charles HTTPS-Datenverkehr entschlüsseln und anzeigen.

Betriebsmodi

Charles unterstützt zwei Modi: Proxy(klassischer Proxy-Server) und SOCKS Proxy(für UDP- und TCP-Datenverkehr). Für die Webentwicklung wird der standardmäßige HTTP-Proxy verwendet. Für mobile Geräte — WiFi-Proxy auf dem Gerät konfigurieren und die IP-Adresse des Computers angeben, auf dem Charles läuft. macOS unterstützt die automatische Proxy-Konfiguration für den iOS-Simulator.

xml
<!-- Konfiguration von network_security_config.xml für Android mit Charles-Unterstützung -->
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <!-- Charles-Zertifikat im Debug-Build vertrauen -->
            <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>

Hauptfunktionen von Charles Proxy

Charles Proxy bietet eine Reihe professioneller Werkzeuge zum Analysieren und Modifizieren von Datenverkehr, die weit über das einfache Abfangen von Anfragen hinausgehen.

Rewrite und Breakpoints

Das Rewrite-Werkzeug ermöglicht das automatische Ändern bestimmter Teile von Anfragen oder Antworten: Header, URL-Parameter, Antwortbody. Beispielsweise können Sie den User-Agent-Header durch einen Wert von einem anderen Gerät ersetzen oder bestimmte Cookies entfernen. Breakpoints funktionieren wie ein Debugger: Die Anfrage wird an einer ausgewählten Stufe angehalten (vor dem Senden oder vor dem Empfangen), und der Entwickler kann ihren Inhalt manuell ändern, bevor sie fortgesetzt wird. Dies ist nützlich zum Testen der Verarbeitung von Fehlerantworten oder nicht standardmäßigen Zuständen.

Map Local und Map Remote

Map Local ermöglicht das Ersetzen einer Netzwerkressource (CSS, JS, JSON) durch eine lokale Datei von der Festplatte. Dies ist in der Frontend-Entwicklung unverzichtbar: Sie können CSS/JS ändern und das Ergebnis sofort sehen, ohne auf einen Server bereitstellen zu müssen. Map Remote leitet Anfragen von einer URL zu einer anderen um — beispielsweise vom Produktionsserver zum Staging-Server für Tests. Beide Werkzeuge arbeiten mit URL-Mustern, die Platzhalter unterstützen.

Throttle und Simulation von Netzwerkbedingungen

Das Throttle-Werkzeug ermöglicht die Simulation verschiedener Arten von Netzwerkverbindungen mit voreingestellten Profilen: 3G, EDGE, GPRS, DSL, WiFi. Sie können Geschwindigkeitsbegrenzungen (Download/Upload), Latenz, Paketverlust und Stabilität konfigurieren. Dies ist entscheidend für das Testen des App-Verhaltens bei langsamen oder instabilen Verbindungen — korrekte Timeout-Behandlung, Wiederholungslogik, Offline-Modus.

ProfilDownloadUploadLatenzTypisches Szenario
3G780 kbps330 kbps200 msTesten mit schwachem Mobilfunksignal
EDGE130 kbps50 kbps400 msExtrem langsame Verbindung
GPRS50 kbps20 kbps500 msMinimal mögliche Verbindung
DSL2 Mbps256 kbps50 msHaushalt-Kabelverbindung
WiFi10 Mbps10 Mbps10 msGute WiFi-Verbindung

Auto Save und Recording

Charles kann Datenverkehrssitzungen automatisch in .chls-Dateien speichern, sodass Sie sie später analysieren oder mit Kollegen teilen können. Mit Recording Control können Sie flexibel konfigurieren, welcher Datenverkehr gespeichert werden soll: nach Domain, Inhaltstyp oder Statuscode. Dies ist für die langfristige API-Überwachung praktisch.

Charles Proxy für mobile Geräte einrichten

Zum Debuggen des Datenverkehrs mobiler Apps wird Charles als WiFi-Proxy konfiguriert: Alle Geräte im selben Netzwerk wie der Computer können Datenverkehr über Charles leiten. Die korrekte HTTPS-Konfiguration erfordert die Installation des Charles-Zertifikats auf dem mobilen Gerät.

Einrichtung auf Android

Für Android: Settings → WiFi → Advanced → Proxy öffnen, Manual auswählen und die IP-Adresse des Computers mit Port 8888 eingeben. Dann einen Browser auf dem Gerät öffnen und http://chls.pro/ssl aufrufen, um das Charles-Zertifikat herunterzuladen. Auf Android 7+ (API 24+) ist eine network_security_config.xml erforderlich, um Benutzerzertifikaten in Debug-Builds zu vertrauen — andernfalls leitet die App möglicherweise keinen Datenverkehr über Charles.

Einrichtung auf iOS

Für iOS: Settings → WiFi → Proxy konfigurieren mit IP und Port 8888. Dann Safari → http://chls.pro/ssl → Zertifikatsprofil installieren. Unter iOS 10.3+ muss zusätzlich das Zertifikatsvertrauen aktiviert werden: Settings → General → About → Certificate Trust Settings → Charles Proxy einschalten. iOS ist strenger bei Zertifikaten: Einige Apps verwenden möglicherweise SSL Pinning, das den Datenverkehr über Charles selbst mit einem vertrauenswürdigen Zertifikat blockiert.

Lösung von SSL-Pinning-Problemen

Wenn die App SSL Pinning(Serverzertifikatsfixierung) verwendet, funktioniert das standardmäßige Proxying über Charles nicht — die App lehnt das Charles-Zertifikat ab. Lösungen: SSL Pinning in Debug-Builds über OkHttp- oder URLSession-Einstellungen deaktivieren, Frida verwenden, um Pinning zur Laufzeit zu umgehen, oder Android Emulator mit Root-Zugriff verwenden.

Praktische Anwendungsfälle für Charles Proxy

Charles Proxy löst spezifische Entwicklungs- und Testaufgaben. Betrachten wir die häufigsten Szenarien, in denen das Werkzeug unverzichtbar ist.

Debuggen der API-Integration

Das häufigste Szenario — Überprüfung der Korrektheit von API-Anfragen. Charles zeigt die genaue Anfrage-URL, Header, Body und Parameter an. Wenn der Server eine unerwartete Antwort zurückgibt, sehen Sie sofort: JSON-Struktur, Fehlercode, Antwort-Header. Dies ermöglicht die Unterscheidung von Client-Fehlern und Server-Fehlern ohne Logs von beiden Seiten.

Testen mit langsamer Verbindung

Mit Throttle-Profilen können Sie testen, wie sich die App bei niedriger Verbindungsgeschwindigkeit verhält: ob ein Ladeindikator angezeigt wird, ob Timeouts korrekt behandelt werden, ob die UI bei Verbindungsverlust einfriert. Besonders wichtig ist das Testen des Cachings — wenn Daten bereits geladen wurden, sollte die App sie aus dem Cache anzeigen, anstatt in einen endlosen Ladezustand zu geraten.

Bearbeiten von Serverantworten

Mit Breakpoints können Sie die Serverantwort ändern, bevor sie an die App gesendet wird. Zum Beispiel ein leeres Array statt Daten zurückgeben, den Statuscode auf 500 ändern, ein neues Feld zum JSON hinzufügen. Dies ermöglicht das Testen der Verarbeitung von Grenzfällen ohne Änderung des Servercodes — eine der leistungsstärksten Anwendungen von Charles in der mobilen Entwicklung.

Häufig gestellte Fragen

Ist Charles Proxy kostenlos?

Charles Proxy ist ein kommerzielles Produkt mit 30-tägiger Testphase. Nach Ablauf der Testphase arbeitet das Programm weiter, pausiert jedoch bei jedem Start für 30 Minuten. Die Lizenz kostet $50 pro Kopie. Es gibt kostenlose Alternativen wie Proxyman (macOS) und mitmproxy (plattformübergreifend).

Kann ich den Datenverkehr des iOS-Simulators abfangen?

Ja, der iOS-Simulator verwendet automatisch den macOS-System-Proxy. Starten Sie einfach Charles und aktivieren Sie SSL-Proxying — der gesamte Simulator-Datenverkehr wird abgefangen. Die Zertifikatseinrichtung für den Simulator erfolgt automatisch; Sie müssen nur dem Charles-Zertifikat im macOS-Schlüsselbund vertrauen.

Wie unterscheidet sich Charles von Proxyman?

Haupt-Unterschiede: Charles ist plattformübergreifend (Windows, macOS, Linux), Proxyman nur für macOS und iOS. Charles hat ein breiteres Werkzeugset (Rewrite, Map Local, Repeat, Auto Save), ist aber kostenpflichtig. Proxyman ist für Basisfunktionen kostenlos, mit moderner Oberfläche und nativer iOS-Simulator-Integration.

Wie beeinflusst Charles Proxy die Leistung?

Charles fügt Latenz hinzu, wenn Datenverkehr durch den Proxy läuft, besonders bei aktivem SSL-Proxying (Entschlüsselung/Verschlüsselung). Auf modernen Computern beträgt die Verzögerung 5–15 Millisekunden pro Anfrage. Für Leistungstests wird empfohlen, SSL-Proxying für statische Inhalte (CSS, JS, Bilder) über Recording Control zu deaktivieren.

Wie exportiere ich eine Sitzung aus Charles?

Charles unterstützt den Export in Formate: .chls(nativ, zum erneuten Öffnen in Charles), HAR(HTTP Archive, öffnet in Browsern und anderen Tools), CSV(zur Verarbeitung in Excel oder Tabellenkalkulationen), Trace(zum Exportieren einer bestimmten Anfrage in curl-kompatiblem Format). Export über das Menü File → Export Session.

Zusammenfassung

  • Charles Proxy ist ein professioneller HTTP/HTTPS-Proxy-Server zum Abfangen, Anzeigen und Ändern von Netzwerkverkehr seit 2004
  • Funktionsprinzip — MITM-Proxy: Alle Anfragen passieren Charles, was Analyse und Änderung im laufenden Betrieb ermöglicht
  • Leistungsstarke Werkzeuge: Rewrite, Breakpoints, Map Local, Map Remote, Throttle — für umfassendes API-Debugging und Benutzererfahrungstests
  • HTTPS-Proxying erfordert die Installation des Charles-Stammzertifikats auf dem Gerät und für Android 7+ — network_security_config.xml in Debug-Builds
  • Throttle-Profile ermöglichen die Simulation von 3G, EDGE, DSL und anderen Verbindungstypen zum Testen des App-Verhaltens unter realen Bedingungen
  • Sitzungsexport in HAR-, CSV- und .chls-Formate zur Analyse, Berichterstattung und Weitergabe an das Team
  • Für Projekte mit begrenztem Budget erwägen Sie kostenlose Alternativen: Proxyman (macOS) oder mitmproxy (plattformübergreifend, Open Source)

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch