SSL-certifikat
Charles genererar sina egna certifikat för webbplatser, som signeras med hjälp av ett Charles rotcertifikat, som genereras unikt för din Charles-installation (från och med v3.10). Du kommer att se en varning i din webbläsare eller annat program när det tar emot certifikatet eftersom Charles rotcertifikat inte finns med i din lista över betrodda rotcertifikat. Se SSL Proxying.
Du kan välja att permanent lita på varje webbplats certifikat när du möter det, i så fall behöver du inte lita på Charles rotcertifikat. Om du vill lita automatiskt på varje certifikat som Charles utfärdar fortsätter du med de här instruktionerna.
De följande instruktionerna gäller olika webbläsare och program för att hjälpa dig att lita på Charles rotcertifikat så att du inte längre får se certifikatvarningar.
Notera att tillvägagångssättet för Charles rotcertifikat ändrades med version 3.10 av Charles, så om du redan har följt denna procedur för en äldre version av Charles måste du göra det igen.
Windows / Internet Explorer
I Charles går du till menyn Hjälp och väljer ”SSL Proxying > Install Charles Root Certificate”. Ett fönster visas med en varning om att CA Root-certifikatet inte är betrodd.
Klicka på knappen ”Install Certificate” (Installera certifikat) för att starta guiden för import av certifikat. Certifikatet måste importeras till certifikatlagret ”Trusted Root Certification Authorities”, så åsidosätt det automatiska valet av certifikatlager.
Färdigställ guiden och ditt Charles Root Certificate är nu installerat. Det kan hända att du måste starta om IE innan installationen börjar gälla.
Mozilla Firefox
Säkerställ först att Firefox är ansluten till Charles. Du bör se att surfning från Firefox registreras i Charles.
Besök https://chls.pro/ssl i Firefox. En dialogruta för import av certifikat visas. Markera alternativet ”Trust this CA to identify websites” och slutför importen.
macOS
I Charles går du till hjälpmenyn och väljer ”SSL Proxying > Install Charles Root Certificate”. Keychain Access öppnas. Hitta posten ”Charles Proxy…” och dubbelklicka för att få information om den. Expandera avsnittet ”Trust” och ändra ”When using this certificate” från ”Use System Defaults” till ”Always Trust”. Stäng sedan fönstret med certifikatinformation och du kommer att uppmanas att ange ditt administratörslösenord för att uppdatera inställningarna för systemförtroende.
Du kan behöva avsluta och öppna Safari igen för att se ändringen.
iOS-enheter
- Inställ din iOS-enhet så att den använder Charles som HTTP-proxy i appen Inställningar > Wifi-inställningar.
- Öppna Safari och bläddra till https://chls.pro/ssl. Safari kommer att uppmana dig att installera SSL-certifikatet.
- Om du har iOS 10.3 eller senare öppnar du appen Inställningar.app och navigerar till Allmänt > Om > Inställningar för certifikatförtroende och letar upp Charles Proxy-certifikatet och aktiverar det för att aktivera fullt förtroende för det (mer information om den här ändringen i iOS 10).
- Nu bör du kunna komma åt SSL-webbplatser med Charles med hjälp av SSL Proxying.
Charles har stöd för App Transport Security (ATS) från och med utgåvan 3.11.4.
iOS-simulatorer
Underbryt din iOS-simulator. Starta Charles och gå till menyn Hjälp. Välj punkten ”SSL Proxying > Install Charles Root Certificate in iOS Simulators”. Detta kommer att installera ditt Charles rotcertifikat i alla dina iOS-simulatorer. När du nu startar iOS-simulatorn bör du kunna komma åt SSL-webbplatser med Charles med hjälp av SSL Proxying.
tvOS
För att ändra proxyinställningarna på tvOS måste du använda Apple Configurator 2 från App Store.
- Skapa en ny profil
- Lägg till en global HTTP Proxy-nyttolast
- Proxy Type: Manual
- Fyll i proxyservern och porten för att peka på Charles på din stationära dator. Inget användarnamn eller lösenord krävs.
- Lägg till Charles rotcertifikat i en certifikatutlastning:
- I Charles väljer du i menyn Hjälp > SSL Proxying Save Charles Charles Root Certificate från menyn Hjälp > SSL Proxying och väljer .cer-formatet i rullgardinsmenyn för filetype.
- I Apple Configurator 2 lägger du till en certifikatutlastning med hjälp av den filen.
Leverera konfigurationsprofilen till din Apple TV.
Gå sedan till Inställningar > Allmänt > Om > Certifikat och aktivera förtroende för Charles Proxy-certifikatet.
Android
Från och med Android N måste du lägga till en konfiguration i appen så att den kan lita på SSL-certifikaten som genereras av Charles SSL Proxying. Detta innebär att du endast kan använda SSL Proxying med appar som du kontrollerar.
För att konfigurera din app så att den litar på Charles måste du lägga till en konfigurationsfil för nätverkssäkerhet i din app. Denna fil kan åsidosätta systemets standardinställning så att din app kan lita på användarinstallerade CA-certifikat (t.ex. Charles rotcertifikat). Du kan ange att detta endast gäller i felsökningsbyggen av din applikation, så att produktionsbyggen använder standardförtroendeprofilen.
Lägg till en fil res/xml/network_security_config.xml till din app:
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
Följ sedan till en referens till den här filen i appens manifest på följande sätt:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config" ... >
...
</application>
</manifest>
Google Chrome
På macOS följer du instruktionerna för macOS ovan. Dessa instruktioner gäller endast på Windows.
I Charles går du till hjälpmenyn och väljer ”SSL Proxying > Save Charles Root Certificate”. Spara rotcertifikatet som ett binärt certifikat (.cer) på skrivbordet eller någonstans där du lätt kan komma åt det i nästa steg.
I Chrome öppnar du Inställningar. Längst ner på sidan med inställningar klickar du på ”Avancerat” för att öppna det avancerade avsnittet och klickar sedan på knappen ”Hantera certifikat…”.
Gå till fliken ”Trusted Root Certification Authorities” (betrodda rotcertifieringsmyndigheter) och klicka på ”Importera…”.
Leta upp certifikatfilen som du sparade från Charles i föregående steg och klicka sedan på Nästa och Slutför och låt standardalternativen vara kvar tills du har slutfört importen. Chrome kommer nu alltid att lita på certifikat som är signerade av Charles.
När du har importerat kan du radera certifikatfilen som du sparade.
Javaapplikationer
Du kan lägga till ditt Charles rotcertifikat i ditt rotcertifikatförtroendearkiv i Java, då kommer alla Javaapplikationer att lita på de certifikat som Charles utfärdar. Observera att du kan behöva göra detta varje gång du uppgraderar din Java-installation.
I Charles går du till hjälpmenyn och väljer ”SSL Proxying > Save Charles Root Certificate”. Spara rotcertifikatet som ett Base 64-kodat certifikat (.pem) på ditt skrivbord, eller någonstans där du lätt kan komma åt det i nästa steg.
Hitta nu filen cacerts, den ska finnas i din $JAVA_HOME/jre/lib/security/cacerts, där $JAVA_HOME är din Java-hembygdskatalog för den JVM du använder.
På Linux är $JAVA_HOME förmodligen redan inställd. Om den inte är inställd på macOS kan du försöka köra /usr/libexec/java_home för att få fram platsen för din JVM.
Skriv sedan (genom att ersätta $JAVA_HOME och lämplig sökväg till certifikatet):
sudo keytool -import -alias charles -file ~/Desktop/charles-ssl-proxying-certificate.pem -keystore JAVA_HOME/jre/lib/security/cacerts -storepass changeit
(changeit är standardlösenordet för cacerts-filen)
På Windows kan det hända att du måste köra ovanstående från en kommandotolk som administratör, och ta bort ”sudo” i början av raden.
Att försöka sedan:
keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
Om du har flera Java-installationer kan du behöva ta reda på vilka du använder för att köra ditt program och göra detta på rätt installation. Eller gör det på alla dina Java-installationer.
På macOS har Java Plugin sin cacerts-fil i /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/security. Du bör lägga till Charles rotcertifikat till den cacerts-filen om du vill att applets som körs i webbläsaren ska lita på Charles.
Python
Pythons requests-modul misslyckas med ett fel när du försöker använda den med SSL Proxying i Charles:
requests.exceptions.SSLError: certificate
verify failed (_ssl.c:590)
Du kan konfigurera requests så att den litar på ditt Charles rotcertifikat. Spara först ditt certifikat som en .pem-fil med hjälp av menyn Hjälp > SSL Proxying > Save Charles Root Certificate. Konfigurera sedan din session enligt följande:
from requests import Session
session = Session()
session.verify = "charles-ssl-proxying-certificate.pem"
Tack till Felipe Ferri för den här exempelkoden.