SSL-certifikater

Charles genererer sine egne certifikater til websteder, som den underskriver ved hjælp af et Charles Root Certificate, som genereres unikt for din installation af Charles (fra v3.10). Du vil se en advarsel i din browser eller et andet program, når den modtager dette certifikat, fordi Charles-rootcertifikatet ikke er på din liste over godkendte rodcertifikater. Se SSL-proxying.

Du kan vælge at stole permanent på hvert enkelt webstedets certifikat, efterhånden som du støder på det, i hvilket tilfælde du ikke behøver at stole på Charles-rootcertifikatet. Hvis du ønsker automatisk at stole på hvert certifikat, der er udstedt af Charles, skal du fortsætte med disse instruktioner.

De følgende instruktioner er til forskellige browsere og programmer, der hjælper dig med at stole på dit Charles-rootcertifikat, så du ikke længere ser certifikatadvarsler.

Bemærk, at Charles Root Certificate-tilgangen blev ændret med version 3.10 af Charles, så hvis du allerede har fulgt denne procedure for en ældre version af Charles, skal du gøre det igen.

Windows / Internet Explorer

I Charles skal du gå til menuen Hjælp og vælge “SSL Proxying > Install Charles Root Certificate”. Der vises et vindue med en advarsel om, at CA Root-certifikatet ikke er betroet.

Klik på knappen “Install Certificate” (installer certifikat) for at starte guiden til certifikatimport. Certifikatet skal importeres til certifikatlageret “Trusted Root Certification Authorities”, så tilsidesæt det automatiske valg af certifikatlager.

Fuldfør guiden, og dit Charles Root-certifikat er nu installeret. Du skal muligvis genstarte IE, før installationen træder i kraft.

Mozilla Firefox

Sørg først for, at Firefox er forbundet til Charles. Du bør se, at browsing fra Firefox bliver registreret i Charles.

Besøg https://chls.pro/ssl i Firefox. Du vil blive præsenteret for en dialogboks til import af certifikater. Sæt kryds i indstillingen “Trust this CA to identify websites” (Stol på denne CA til at identificere websteder), og afslut importen.

macOS

I Charles skal du gå til menuen Hjælp og vælge “SSL Proxying > Install Charles Root Certificate” (SSL-proxying > Installer Charles-rootcertifikat). Keychain Access vil blive åbnet. Find posten “Charles Proxy…”, og dobbeltklik på den for at få oplysninger om den. Udvid afsnittet “Trust” (tillid), og ved siden af “When using this certificate” (Når du bruger dette certifikat) ændres det fra “Use System Defaults” (Brug systemindstillinger) til “Always Trust” (Stol altid på). Luk derefter vinduet med certifikatoplysninger, og du vil blive bedt om din administratoradgangskode for at opdatere systemtillidsindstillingerne.

Du skal muligvis afslutte og genåbne Safari for at se ændringen.

iOS-enheder

  • Sæt din iOS-enhed til at bruge Charles som HTTP-proxy i appen Indstillinger > Wifiindstillinger.
  • Åbn Safari, og gennemse til https://chls.pro/ssl. Safari vil bede dig om at installere SSL-certifikatet.
  • Hvis du er på iOS 10.3 eller nyere, skal du åbne appen Indstillinger.app og navigere til Generelt > Om > Indstillinger for certifikattillid, og finde Charles Proxy-certifikatet og slå det til for at aktivere fuld tillid til det (Flere oplysninger om denne ændring i iOS 10).
  • Nu skulle du kunne få adgang til SSL-websteder med Charles ved hjælp af SSL Proxying.

Charles understøtter App Transport Security (ATS) fra og med udgivelsen 3.11.4.

iOS-simulatorer

Afslut din iOS-simulator. Start Charles, og gå til menuen Hjælp. Vælg punktet “SSL Proxying > Installér Charles Root Certificate in iOS Simulators”. Dette vil installere dit Charles-rootcertifikat i alle dine iOS-simulatorer. Når du nu starter iOS-simulatoren, bør du kunne få adgang til SSL-websteder med Charles ved hjælp af SSL Proxying.

tvOS

For at ændre proxyindstillingerne på tvOS skal du bruge Apple Configurator 2 fra App Store.

  • Opret en ny profil
  • Føj en Global HTTP Proxy payload
    • Proxy Type: Manual
    • Indtast proxyserveren og porten for at pege på Charles på din stationære maskine. Der kræves hverken brugernavn eller adgangskode.
  • Føj Charles-rootcertifikatet til en nyttelast med certifikater:
    • I Charles skal du i menuen Hjælp > SSL-proxying vælge Gem Charles Charles Charles-rootcertifikat i menuen Hjælp > og vælge .cer-formatet fra rullelisten filetype.
    • I Apple Configurator 2 skal du tilføje en nyttelast med certifikater ved hjælp af denne fil.

Deployer konfigurationsprofilen på dit Apple TV.

Gå derefter ind i Indstillinger > Generelt > Om > Certifikater og aktiver tillid til Charles Proxy-certifikatet.

Android

Som i Android N skal du tilføje konfiguration til din app for at få den til at stole på de SSL-certifikater, der genereres af Charles SSL Proxying. Det betyder, at du kun kan bruge SSL Proxying med apps, som du har kontrol over.

For at konfigurere din app til at stole på Charles skal du tilføje en konfigurationsfil for netværkssikkerhed til din app. Denne fil kan tilsidesætte systemets standardindstilling og gøre det muligt for din app at stole på brugerinstallerede CA-certifikater (f.eks. Charles-rootcertifikatet). Du kan angive, at dette kun gælder i debug-builds af din applikation, så produktionsbuilds bruger standardtillidsprofilen.

Føj en fil res/xml/network_security_config.xml til 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øj derefter en henvisning til denne fil i din app’s manifest som følger:

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config" ... >
...
</application>
</manifest>

Google Chrome

På macOS skal du følge instruktionerne for macOS ovenfor. Disse instruktioner gælder kun på Windows.

I Charles skal du gå til menuen Hjælp og vælge “SSL Proxying > Save Charles Root Certificate”. Gem rodcertifikatet som et binært certifikat (.cer) på dit skrivebord eller et sted, hvor du nemt kan få adgang til det i det næste trin.

I Chrome skal du åbne Indstillinger. Nederst på siden med indstillinger skal du klikke på “Avanceret” for at åbne den avancerede sektion og derefter klikke på knappen “Administrer certifikater…”.

Gå til fanen “Trusted Root Certification Authorities”, og klik på “Import…”.

Find den certifikatfil, du gemte fra Charles i det foregående trin, og klik derefter på Næste og Afslut, idet du lader standardindstillingerne stå, indtil du har afsluttet importen. Chrome vil nu altid stole på certifikater, der er underskrevet af Charles.

Når du har importeret, kan du slette den certifikatfil, du gemte.

Java-programmer

Du kan tilføje dit Charles-rootcertifikat til dit rodcertifikattillidslager i Java, hvorefter alle Java-programmer vil stole på de certifikater, som Charles udsteder. Bemærk, at du muligvis skal gøre dette hver gang du opgraderer din Java-installation.

I Charles skal du gå til menuen Hjælp og vælge “SSL Proxying > Save Charles Root Certificate”. Gem rodcertifikatet som et Base 64-kodet certifikat (.pem) på dit skrivebord eller et sted, hvor du nemt kan få adgang til det i næste trin.

Find nu cacerts-filen, den skal være i din $JAVA_HOME/jre/lib/security/cacerts, hvor $JAVA_HOME er din java-hjemmemappe for den JVM, du bruger.

På Linux vil $JAVA_HOME sandsynligvis allerede være indstillet. Hvis det ikke er indstillet på macOS, kan du prøve at køre /usr/libexec/java_home for at få oplyst placeringen af din JVM.

Typ derefter (med erstatning for $JAVA_HOME og den relevante sti til certifikatet):

sudo keytool -import -alias charles -file ~/Desktop/charles-ssl-proxying-certificate.pem -keystore JAVA_HOME/jre/lib/security/cacerts -storepass changeit

(changeit er standardadgangskoden på cacerts-filen)

På Windows skal du muligvis køre ovenstående fra en kommandoprompt som administrator, og fjerne “sudo” i starten af linjen.

Forsøg derefter:

keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit

Hvis du har flere Java-installationer, skal du muligvis finde ud af, hvilke du bruger til at køre dit program, og gøre dette på den relevante installation. Eller gør det på alle dine Java-installationer.

På macOS har Java-plugin’et sin cacerts-fil på /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/security. Du skal tilføje Charles-rootcertifikatet til denne cacerts-fil, hvis du vil have applets, der kører i din browser, til at stole på Charles.

Python

Pythons requests-modul vil fejle med en fejl, når du forsøger at bruge det med SSL-proxying i Charles:

 requests.exceptions.SSLError: certificate
verify failed (_ssl.c:590)

Du kan konfigurere requests til at stole på dit Charles-rootcertifikat. Gem først dit certifikat som en .pem-fil ved hjælp af menuen Hjælp > SSL-proxying > Gem Charles-rootcertifikat. Konfigurer derefter din session som følger:

from requests import Session
session = Session()
session.verify = "charles-ssl-proxying-certificate.pem"

Tak til Felipe Ferri for at stille denne eksempelkode til rådighed.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.