SSL tanúsítványok
A Charles saját tanúsítványokat generál a webhelyek számára, amelyeket egy Charles gyökértanúsítvány segítségével ír alá, amely a Charles telepítéséhez egyedileg generált (a v3.10-től kezdve). A böngészőben vagy más alkalmazásban figyelmeztetés jelenik meg, amikor megkapja ezt a tanúsítványt, mivel a Charles gyökértanúsítvány nem szerepel a megbízható gyökértanúsítványok listáján. Lásd: SSL proxying.
Elválaszthatja, hogy állandóan megbízik az egyes webhelyek tanúsítványában, amint találkozik vele, ebben az esetben nem kell megbíznia a Charles gyökértanúsítványban. Ha automatikusan megbízik minden, a Charles által kiállított tanúsítványban, folytassa az alábbi utasításokkal.
A következő utasítások különböző böngészőkre és alkalmazásokra vonatkoznak, hogy segítsenek megbízni a Charles gyökértanúsítványban, hogy többé ne jelenjenek meg tanúsítványfigyelmeztetések.
Megjegyezzük, hogy a Charles gyökértanúsítvány megközelítése a Charles 3.10-es verziójával megváltozott, ezért ha már követte ezt az eljárást a Charles egy régebbi verziójánál, akkor újra el kell végeznie.
Windows / Internet Explorer
A Charlesban lépjen a Súgó menübe, és válassza az “SSL Proxying > Install Charles Root Certificate” menüpontot. Megjelenik egy ablak, amely arra figyelmeztet, hogy a CA gyökértanúsítvány nem megbízható.
Kattintson a “Tanúsítvány telepítése” gombra a tanúsítvány importálás varázsló elindításához. A tanúsítványt a “Trusted Root Certification Authorities” tanúsítványtárolóba kell importálni, ezért írja felül az automatikus tanúsítványtároló kiválasztását.
Töltse ki a varázslót, és a Charles Root tanúsítványa telepítve van. Előfordulhat, hogy újra kell indítania az IE-t, mielőtt a telepítés érvénybe lép.
Mozilla Firefox
Először győződjön meg arról, hogy a Firefox csatlakozik a Charles-hoz. Látnia kell, hogy a Firefox böngészését a Charles rögzíti.
Látogasson el a https://chls.pro/ssl-ra a Firefoxban. Megjelenik egy tanúsítványimportáló párbeszédpanel. Jelölje be a “Trust this CA to identify websites” opciót, és fejezze be az importálást.
macOS
A Charlesban lépjen a Súgó menübe, és válassza az “SSL Proxying > Install Charles Root Certificate” lehetőséget. Megnyílik a kulcstár hozzáférés. Keresse meg a “Charles Proxy…” bejegyzést, és kattintson rá duplán, hogy információt kapjon róla. Bontsa ki a “Bizalom” részt, és a “When using this certificate” mellett változtassa meg a “Use System Defaults” értéket “Always Trust” értékre. Ezután zárja be a tanúsítványinformációs ablakot, és a rendszer kérni fogja a rendszergazda jelszavát a rendszer bizalmi beállításainak frissítéséhez.
Elképzelhető, hogy ki kell lépnie és újra meg kell nyitnia a Safarit, hogy lássa a módosítást.
iOS eszközök
- Állítsa be iOS készülékét, hogy a Charles-t használja HTTP-proxyként a Beállítások alkalmazás > Wifi beállítások
- Nyissa meg a Safarit, és keresse meg a https://chls.pro/ssl helyet. A Safari fel fogja kérni az SSL-tanúsítvány telepítését.
- Ha iOS 10.3 vagy újabb iOS-t használ, nyissa meg a Beállítások.appot, és navigáljon az Általános > Körülbelül > Tanúsítvány megbízhatósági beállítások menüpontba, és keresse meg a Charles Proxy tanúsítványt, és kapcsolja be, hogy engedélyezze számára a teljes bizalmat (További információ erről a változásról az iOS 10-ben).
- Most már képesnek kell lennie arra, hogy SSL weboldalakat érjen el a Charles segítségével SSL Proxying használatával.
A Charles a 3.11.4-es kiadástól támogatja az App Transport Security-t (ATS).
iOS-szimulátorok
Kilépjen az iOS-szimulátorból. Indítsa el a Charles-t, és lépjen a Súgó menübe. Válassza az “SSL Proxying > Install Charles Root Certificate in iOS Simulators” pontot. Ez telepíti a Charles gyökértanúsítványt az összes iOS-szimulátorába. Most, amikor elindítja az iOS szimulátort, képesnek kell lennie arra, hogy SSL weboldalakat érjen el a Charles segítségével az SSL Proxying használatával.
tvOS
A tvOS proxy beállításainak módosításához az Apple Configurator 2-t kell használnia az App Store-ból.
- Create a New Profile
- Add a Global HTTP Proxy payload
- Proxy Type: Kézi
- Töltse ki a proxykiszolgálót és a portot, hogy az asztali gépén lévő Charles-ra mutasson. Felhasználónév vagy jelszó nem szükséges.
- Adja hozzá a Charles gyökértanúsítványt egy tanúsítványok hasznos terhelésben:
- A Charlesban a Súgó > SSL-proxying menüből válassza a Charles Charles Charles gyökértanúsítvány mentése parancsot, és válassza a .cer formátumot a fájltípus legördülő listából.
- Az Apple Configurator 2-ben adjon hozzá egy tanúsítványok hasznos terhelést ezzel a fájlal.
Telepítse a konfigurációs profilt az Apple TV-re.
Ezután lépjen a Beállítások > Általános > Rólunk > Tanúsítványok menüpontba, és engedélyezze a Charles Proxy tanúsítvány megbízhatóságát.
Android
Az Android N-től kezdve konfigurációt kell hozzáadnia az alkalmazásához, hogy az megbízzon a Charles SSL Proxying által generált SSL-tanúsítványokban. Ez azt jelenti, hogy csak az Ön által ellenőrzött alkalmazásokkal használhatja az SSL Proxyinget.
Hálózatbiztonsági konfigurációs fájl hozzáadása szükséges ahhoz, hogy az alkalmazása megbízzon a Charles-ban. Ez a fájl felülbírálhatja a rendszer alapértelmezett beállításait, lehetővé téve az alkalmazás számára, hogy megbízzon a felhasználó által telepített hitelesítésszolgáltatói tanúsítványokban (pl. a Charles gyökértanúsítványban). Megadhatja, hogy ez csak az alkalmazás hibakereséses építéseiben legyen érvényes, így a produktív építések az alapértelmezett bizalmi profilt használják.
Adjon hozzá egy res/xml/network_security_config.xml fájlt az alkalmazásához:
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
Ezután adjon hozzá egy hivatkozást erre a fájlra az alkalmazás manifesztjében, az alábbiak szerint:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config" ... >
...
</application>
</manifest>
Google Chrome
MacOS-en kövesse a fenti macOS-re vonatkozó utasításokat. Ezek az utasítások csak Windowson érvényesek.
A Charlesban lépjen a Súgó menübe, és válassza az “SSL Proxying > Save Charles Root Certificate” menüpontot. Mentse a gyökértanúsítványt bináris tanúsítványként (.cer) az asztalára, vagy olyan helyre, ahol a következő lépésben könnyen hozzáférhet.
A Chrome-ban nyissa meg a Beállításokat. A beállítások oldal alján kattintson a “Speciális” gombra a “Speciális” rész megnyitásához, majd kattintson a “Tanúsítványok kezelése…” gombra.
Menjen a “Megbízható gyökértanúsító hatóságok” fülre, és kattintson az “Importálás…” gombra.
Keresze meg a Charlesból az előző lépésben elmentett tanúsítványfájlt, majd kattintson a Tovább és a Befejezés gombra, hagyja az alapértelmezett beállításokat, amíg be nem fejezi az importálást. A Chrome mostantól mindig megbízik a Charles által aláírt tanúsítványokban.
Az importálás után törölheti a mentett tanúsítványfájlt.
Java alkalmazások
A Charles gyökértanúsítványát hozzáadhatja a Java gyökértanúsítványok bizalmi tárolójához, ekkor minden Java alkalmazás megbízik a Charles által kiállított tanúsítványokban. Vegye figyelembe, hogy ezt minden alkalommal meg kell tennie, amikor frissíti a Java telepítését.
A Charlesban lépjen a Súgó menübe, és válassza az “SSL Proxying > Save Charles Root Certificate” menüpontot. Mentsd el a gyökértanúsítványt Base 64 kódolt tanúsítványként (.pem) az asztalodra, vagy olyan helyre, ahol a következő lépésben könnyen elérheted.
Most keresd meg a cacerts fájlt, ennek a $JAVA_HOME/jre/lib/security/cacerts fájlban kell lennie, ahol $JAVA_HOME az általad használt JVM java home könyvtára.
Linuxon a $JAVA_HOME valószínűleg már be lesz állítva. MacOS-en, ha nincs beállítva, próbáld meg futtatni az /usr/libexec/java_home parancsot, hogy megtudd a JVM-ed helyét.
Ezután írja be (a $JAVA_HOME és a tanúsítvány megfelelő elérési útvonalának helyettesítésével):
sudo keytool -import -alias charles -file ~/Desktop/charles-ssl-proxying-certificate.pem -keystore JAVA_HOME/jre/lib/security/cacerts -storepass changeit
(changeit az alapértelmezett jelszó a cacerts fájlban)
Windowson előfordulhat, hogy a fenti parancsot egy parancssorból kell futtatnia rendszergazdaként, és a sor elején lévő “sudo”-t el kell távolítania.
Ezután próbálja meg:
keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
Ha több Java telepítése van, akkor lehet, hogy ki kell találnia, hogy melyiket használja az alkalmazás futtatására, és ezt a megfelelőn kell elvégeznie. Vagy végezze el az összes Java telepítésén.
MacOS-en a Java Plugin cacerts fájlja a /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/security címen található. A Charles gyökértanúsítványt hozzá kell adnia ehhez a cacerts fájlhoz, ha azt szeretné, hogy a böngészőben futó appletek megbízzanak a Charles-ban.
Python
A Python requests modulja hibaüzenettel sikertelen lesz, ha megpróbálja használni a Charles SSL proxyinggal:
requests.exceptions.SSLError: certificate
verify failed (_ssl.c:590)
A requests-et úgy konfigurálhatja, hogy megbízzon a Charles gyökértanúsítványában. Először mentse el a tanúsítványát .pem fájlként a Súgó > SSL Proxying > Save Charles Root Certificate menüpont segítségével. Ezután konfigurálja a munkamenetet a következőképpen:
from requests import Session
session = Session()
session.verify = "charles-ssl-proxying-certificate.pem"
Köszönjük Felipe Ferri-nek a példakód biztosítását.