Charles Proxy — mi ez, beállítás és HTTPS forgalom elfogása

Szerző: IT Sectr Megjelenés: 2026-05-08 Olvasási idő: 8 perc

A Charles Proxy egy többplatformos proxy-szerver HTTP/HTTPS-forgalom hibakereséséhez, amelyet fejlesztők használnak hálózati kérések elfogására, megtekintésére és módosítására. Karl von Randow, az eszköz alkotója (2025) szerint a Charles-t 2004 óta világszerte több mint 50 000 vállalat használja. A proxy támogatja a forgalom elfogását mobileszközökről WiFi-n keresztül, a HTTPS-proxyzást gyökértanúsítvány telepítésével, valamint az API-elemzéshez szükséges eszközök széles skáláját.

Főbb pontok

  • Charles Proxy — egy HTTP/HTTPS proxy-szerver hálózati forgalom elfogására és elemzésére fejlett hibakeresési képességekkel
  • HTTPS-proxyzás a Charles gyökértanúsítványának az eszközre történő telepítésével valósul meg, lehetővé téve a titkosított forgalom megtekintését
  • Rewrite és Breakpoints — hatékony eszközök a kérések és válaszok menet közbeni módosításához a szerver vagy kliens kódjának megváltoztatása nélkül
  • Map Local és Map Remote lehetővé teszik a hálózati erőforrások helyi fájlokkal vagy alternatív szerverekkel való helyettesítését tesztelés céljából
  • Throttle — lassú és instabil hálózati kapcsolatok szimulációja az alkalmazás viselkedésének ellenőrzéséhez gyenge kapcsolat esetén

Mi az a Charles Proxy?

A Charles Proxy egy HTTP-proxy és HTTP-figyelő, amely közvetítőként működik a kliens és a szerver között. Minden kérés és válasz áthalad a Charles-on, lehetővé téve a tartalom megtekintését, a struktúra elemzését, az adatok valós idejű módosítását és különböző hálózati körülmények szimulálását. Elérhető Windows, macOS és Linux rendszerekre.

Történet és pozicionálás

A Charles Proxy-t 2004-ben hozta létre Karl von Randow, és a hálózati forgalom hibakeresésének egyik legnépszerűbb eszköze maradt. Az ingyenes alternatívákkal ellentétben a Charles fizetős licencet kínál 30 napos próbaidőszakkal. Az eszköz professzionális megoldásként pozicionálódik mobilalkalmazás-fejlesztők, webfejlesztők és QA-mérnökök számára, akiknek teljes körű ellenőrzésre van szükségük a HTTP-kommunikáció felett.

Platformkompatibilitás

A Charles rendszerproxyként működik a számítógépen, és képes forgalmat elfogni bármely eszközről ugyanazon a hálózaton: Android, iOS, szimulátorok, emulátorok, webböngészők és IoT-eszközök. A HTTPS elfogásához telepíteni kell a Charles gyökértanúsítványát minden eszközre. A forgalom HTTP/1.1 és HTTP/2 (részleges) támogatással rendelkezik. A HTTP/3 (QUIC) nem támogatott az elfogás szintjén.

Hogyan működik a Charles Proxy

A Charles a MITM (Man-in-the-Middle) proxy elvén működik: amikor egy kliens kérést küld a Charles-on keresztül, az eszköz elfogja ezt a kérést, továbbítja a célkiszolgálónak, megkapja a választ, és visszaküldi a kliensnek. Minden forgalom áthalad a Charles-on, lehetővé téve az elemzést és módosítást.

A proxy architektúrája

Indításkor a Charles létrehoz egy helyi HTTP-proxyt a 8888-as porton (alapértelmezett). Az operációs rendszer vagy alkalmazás a proxy használatára van konfigurálva. Az összes HTTP-kérés először a Charles-hoz kerül, amely aztán teljes értékű kliensként működik a célkiszolgáló számára. HTTPS esetén a Charles saját SSL-proxy technikáját használja: menet közben generál egy tanúsítványt minden domainhez, amelyet a Charles gyökértanúsítványa ír alá. Ha a gyökértanúsítvány megbízhatóként van telepítve az eszközön, a Charles képes visszafejteni és megtekinteni a HTTPS-forgalmat.

Munkamódok

A Charles két módot támogat: Proxy (klasszikus proxy-szerver) és SOCKS Proxy (UDP és TCP forgalomhoz). Webfejlesztéshez a szabványos HTTP-proxy használatos. Mobileszközökhöz — WiFi Proxy konfiguráció az eszközön a Charles-t futtató számítógép IP-címének megadásával. A MacOS támogatja az automatikus proxy konfigurációt az iOS szimulátor számára.

xml
<!-- A network_security_config.xml konfigurálása Androidhoz Charles támogatással -->
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <!-- Bízzon a Charles tanúsítványban a Debug építésben -->
            <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>

A Charles Proxy főbb funkciói

A Charles Proxy a forgalom elemzéséhez és módosításához professzionális eszközkészletet biztosít, amely messze túlmutat az egyszerű kéréselfogáson.

Rewrite és Breakpoints

A Rewrite eszköz lehetővé teszi a kérések vagy válaszok bizonyos részeinek automatikus módosítását: fejlécek, URL-paraméterek, válasz törzse. Például lecserélheti a User-Agent fejlécet egy másik eszköz értékére, vagy eltávolíthat bizonyos cookie-kat. A Breakpoints úgy működik, mint egy hibakereső: a kérés a kiválasztott szakaszban (küldés előtt vagy fogadás előtt) megáll, és a fejlesztő manuálisan módosíthatja a tartalmát, mielőtt az továbbhaladna. Ez hasznos a hibaválaszok vagy nem szabványos állapotok kezelésének teszteléséhez.

Map Local és Map Remote

A Map Local lehetővé teszi egy hálózati erőforrás (CSS, JS, JSON) lemezről származó helyi fájlra cserélését. Ez nélkülözhetetlen a frontend-fejlesztésben: módosíthatja a CSS/JS-t, és azonnal láthatja az eredményt anélkül, hogy telepítené a szerverre. A Map Remote átirányítja a kéréseket egyik URL-ről a másikra — például az éles szerverről a stagingre tesztelés céljából. Mindkét eszköz URL-mintákkal működik, wildcard támogatással.

Throttle és hálózati körülmények szimulálása

A Throttle eszköz lehetővé teszi különböző típusú hálózati kapcsolatok szimulálását előre beállított profilok alapján: 3G, EDGE, GPRS, DSL, WiFi. Beállíthat sebességkorlátozást (letöltés/feltöltés), késleltetést, csomagvesztést és stabilitást. Ez kritikus fontosságú az alkalmazás viselkedésének teszteléséhez lassú vagy instabil kapcsolat esetén — időtúllépések megfelelő kezelése, újrapróbálkozások, offline mód.

ProfilLetöltésFeltöltésKésleltetésTipikus forgatókönyv
3G780 kbps330 kbps200 msTesztelés gyenge mobil jellel
EDGE130 kbps50 kbps400 msRendkívül lassú kapcsolat
GPRS50 kbps20 kbps500 msMinimális lehetséges kapcsolat
DSL2 Mbps256 kbps50 msOtthoni vezetékes kapcsolat
WiFi10 Mbps10 Mbps10 msJó WiFi kapcsolat

Auto Save és Recording

A Charles automatikusan mentheti a forgalmi munkameneteket .chls fájlokba, lehetővé téve a későbbi elemzést vagy a kollégákkal való megosztást. A Recording Control lehetővé teszi a mentendő forgalom rugalmas konfigurálását: domain, tartalomtípus, állapotkód alapján. Ez kényelmes az API hosszú távú monitorozásához.

A Charles Proxy beállítása mobileszközökhöz

A mobilalkalmazások forgalmának hibakereséséhez a Charles WiFi Proxy-ként van konfigurálva: a számítógéppel azonos hálózaton lévő összes eszköz irányíthatja a forgalmat a Charles-on keresztül. A HTTPS helyes beállításához telepíteni kell a Charles tanúsítványát a mobileszközre.

Beállítás Androidon

Android esetén: nyissa meg a Beállítások → WiFi → Speciális → Proxy menüt, válassza a Kézi lehetőséget, és adja meg a számítógép IP-címét a 8888-as porttal. Ezután nyissa meg a böngészőt az eszközön, és látogasson el a http://chls.pro/ssl címre a Charles tanúsítvány letöltéséhez. Android 7+ (API 24+) rendszeren network_security_config.xml szükséges a felhasználói tanúsítványok megbízhatóságához Debug buildben — ellenkező esetben az alkalmazás nem engedheti át a forgalmat a Charles-on keresztül.

Beállítás iOS-en

iOS esetén: Beállítások → WiFi → proxy konfigurálása IP-címre és 8888-as portra. Majd Safari → http://chls.pro/ssl → tanúsítványprofil telepítése. iOS 10.3+ rendszeren engedélyeznie kell a tanúsítvány megbízhatóságát: Beállítások → Általános → Névjegy → Tanúsítvány-megbízhatósági beállítások → Charles Proxy engedélyezése. Az iOS szigorúbb a tanúsítványokkal: egyes alkalmazások SSL Pinning-et használhatnak, blokkolva a forgalmat a Charles-on keresztül még megbízható tanúsítvány esetén is.

SSL Pinning problémák megoldása

Ha az alkalmazás SSL Pinning-et (szervertanúsítvány rögzítése) használ, a szabványos proxyzás a Charles-on keresztül nem fog működni — az alkalmazás elutasítja a Charles tanúsítványát. Megoldások: az SSL Pinning kikapcsolása Debug buildben az OkHttp vagy URLSession beállításain keresztül, a Frida használata a pinning megkerülésére futási időben, vagy Android Emulator használata root hozzáféréssel.

A Charles Proxy gyakorlati használati esetei

A Charles Proxy specifikus fejlesztési és tesztelési feladatokat old meg. Tekintsük át a leggyakoribb forgatókönyveket, ahol az eszköz nélkülözhetetlen.

API-integráció hibakeresése

A leggyakoribb forgatókönyv — az API-kérések helyességének ellenőrzése. A Charles megjeleníti a kérés pontos URL-jét, fejléceit, törzsét, paramétereit. Ha a szerver váratlan választ ad, azonnal látható: a JSON struktúra, a hibakód, a válasz fejlécei. Ez lehetővé teszi a kliensoldali hiba megkülönböztetését a szerveroldali hibától anélkül, hogy mindkét oldalról naplókra lenne szükség.

Tesztelés lassú kapcsolattal

A Throttle profilok segítségével ellenőrizheti, hogyan viselkedik az alkalmazás alacsony kapcsolati sebesség mellett: megjelenik-e a betöltésjelző, megfelelően kezeli-e az időtúllépést, lefagy-e a felület a kapcsolat megszakadásakor. Különösen fontos a gyorsítótárazás tesztelése — ha az adatok már betöltődtek, az alkalmazásnak a gyorsítótárból kell megjelenítenie azokat, nem szabad végtelen betöltésbe kezdenie.

Szerverválaszok szerkesztése

A Breakpoints segítségével módosíthatja a szerver válaszát, mielőtt az elküldésre kerülne az alkalmazásnak. Például üres tömb visszaküldése adatok helyett, állapotkód módosítása 500-ra, új mező hozzáadása a JSON-hoz. Ez lehetővé teszi a határesetek kezelésének tesztelését a szerverkód módosítása nélkül — a Charles egyik legerősebb alkalmazása a mobilfejlesztésben.

Gyakran Ismételt Kérdések

Ingyenes a Charles Proxy?

A Charles Proxy egy kereskedelmi termék 30 napos próbaidőszakkal. A próbaidőszak lejárta után a program 30 perces szünettel működik tovább minden indításkor. A licenc ára 50 dollár másolatonként. Vannak ingyenes alternatívák, mint a Proxyman (macOS) és a mitmproxy (többplatformos).

Elfogható az iOS szimulátor forgalma?

Igen, az iOS szimulátor automatikusan a macOS rendszerproxyját használja. Elég elindítani a Charles-t és engedélyezni az SSL-proxyzást — a szimulátor teljes forgalma elfogásra kerül. A tanúsítvány beállítása a szimulátorhoz automatikusan történik, csak a Charles tanúsítványát kell megbízni a macOS kulcstartóban.

Miben különbözik a Charles a Proxymantól?

Főbb különbségek: A Charles többplatformos (Windows, macOS, Linux), a Proxyman — csak macOS és iOS. A Charles szélesebb eszközkészlettel rendelkezik (Rewrite, Map Local, Repeat, Auto Save), de fizetős. A Proxyman az alapfunkciókhoz ingyenes, modern felülettel és natív iOS szimulátor integrációval.

Hogyan befolyásolja a Charles Proxy a teljesítményt?

A Charles késleltetést ad hozzá, amikor a forgalom áthalad a proxyn, különösen aktív SSL-proxyzás esetén (visszafejtés/titkosítás). Modern számítógépeken a késleltetés 5–15 ezredmásodperc kérésenként. Teljesítménytesztekhez ajánlott az SSL-proxyzás kikapcsolása a statikus erőforrásokhoz (CSS, JS, képek) a Recording Control segítségével.

Hogyan exportálható egy munkamenet a Charles-ból?

A Charles exportálást támogat a következő formátumokba: .chls (natív, a Charles-ban való újranyitáshoz), HAR (HTTP Archive, böngészőkben és más eszközökben nyílik meg), CSV (Excelben vagy táblázatokban történő feldolgozáshoz), Trace (egy adott kérés exportálásához curl-kompatibilis formátumban). Exportálás a File → Export Session menüponton keresztül.

Összefoglalás

  • Charles Proxy — professzionális HTTP/HTTPS proxy-szerver hálózati forgalom elfogására, megtekintésére és módosítására 2004 óta
  • Működési elv — MITM proxy: minden kérés áthalad a Charles-on, lehetővé téve az elemzést és módosítást menet közben
  • Hatékony eszközök: Rewrite, Breakpoints, Map Local, Map Remote, Throttle — átfogó API-hibakereséshez és felhasználói élmény teszteléséhez
  • HTTPS-proxyzás megköveteli a Charles gyökértanúsítványának telepítését az eszközre, Android 7+ esetén pedig — network_security_config.xml a Debug buildben
  • Throttle profilok lehetővé teszik a 3G, EDGE, DSL és más kapcsolattípusok szimulálását az alkalmazás viselkedésének teszteléséhez valós körülmények között
  • Munkamenet exportálása HAR, CSV és .chls formátumokba elemzéshez, jelentéskészítéshez és a csapattal való megosztáshoz
  • Korlátozott költségvetésű projektekhez fontolja meg az ingyenes alternatívákat: Proxyman (macOS) vagy mitmproxy (többplatformos nyílt forráskódú)

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is