Certificate SSL
Charles generează propriile certificate pentru site-uri, pe care le semnează cu ajutorul unui certificat rădăcină Charles, care este generat în mod unic pentru instalația dumneavoastră de Charles (începând cu v3.10). Veți vedea un avertisment în browserul dumneavoastră, sau în altă aplicație, atunci când primește acest certificat, deoarece certificatul rădăcină Charles nu se află în lista dumneavoastră de certificate rădăcină de încredere. Consultați SSL Proxying.
Puteți alege să aveți încredere permanentă în certificatul fiecărui site pe măsură ce îl întâlniți, caz în care nu trebuie să aveți încredere în certificatul rădăcină Charles. Dacă doriți să aveți încredere în mod automat în fiecare certificat emis de Charles, continuați cu aceste instrucțiuni.
Cele ce urmează sunt instrucțiuni pentru diferite browsere și aplicații pentru a vă ajuta să aveți încredere în certificatul rădăcină Charles, astfel încât să nu mai vedeți avertismente de certificat.
Rețineți că abordarea Charles Root Certificate s-a schimbat odată cu versiunea 3.10 a lui Charles, așa că, dacă ați urmat deja această procedură pentru o versiune mai veche a lui Charles, va trebui să o faceți din nou.
Windows / Internet Explorer
În Charles mergeți la meniul Help (Ajutor) și alegeți „SSL Proxying > Install Charles Root Certificate”. Va apărea o fereastră care vă va avertiza că certificatul CA Root nu este de încredere.
Click pe butonul „Install Certificate” pentru a lansa Expertul pentru importul de certificate. Certificatul trebuie să fie importat în magazinul de certificate „Trusted Root Certification Authorities”, așa că anulați selecția automată a magazinului de certificate.
Completați expertul și certificatul Charles Root este acum instalat. Este posibil să fie nevoie să reporniți IE înainte ca instalarea să aibă efect.
Mozilla Firefox
În primul rând, asigurați-vă că Firefox este conectat la Charles. Ar trebui să vedeți că navigarea din Firefox este înregistrată în Charles.
Vizitați https://chls.pro/ssl în Firefox. Vi se va prezenta o fereastră de dialog privind importul de certificate. Bifați opțiunea „Trust this CA to identify websites” și finalizați importul.
macOS
În Charles mergeți la meniul Help (Ajutor) și alegeți „SSL Proxying > Install Charles Root Certificate”. Se va deschide Keychain Access. Găsiți intrarea „Charles Proxy…” și faceți dublu clic pentru a obține informații despre aceasta. Extindeți secțiunea „Trust” (Încredere) și, lângă „When using this certificate” (Când utilizați acest certificat), modificați-o din „Use System Defaults” (Utilizați valorile implicite ale sistemului) în „Always Trust” (Întotdeauna încredere). Apoi închideți fereastra cu informații despre certificat și vi se va cere parola de administrator pentru a actualiza setările de încredere ale sistemului.
Poate fi nevoie să ieșiți din Safari și să îl redeschideți pentru a vedea modificarea.
Dispozitive iOS
- Setați dispozitivul iOS să folosească Charles ca proxy HTTP în aplicația Settings > Wifi settings.
- Deschideți Safari și navigați la https://chls.pro/ssl. Safari vă va solicita să instalați certificatul SSL.
- Dacă aveți iOS 10.3 sau o versiune ulterioară, deschideți aplicația Settings.app și navigați la General > About > Certificate Trust Settings, găsiți certificatul Charles Proxy și activați-l pentru a activa încrederea deplină pentru acesta (Mai multe informații despre această modificare în iOS 10).
- Acum ar trebui să puteți accesa site-uri web SSL cu Charles folosind SSL Proxying.
Charles suportă App Transport Security (ATS) începând cu versiunea 3.11.4.
Simulatoare iOS
Închideți simulatorul iOS. Lansați Charles și mergeți la meniul Help (Ajutor). Alegeți elementul „SSL Proxying > Install Charles Root Certificate in iOS Simulators”. Acest lucru va instala certificatul Charles Root Certificate în toate simulatoarele iOS. Acum, când porniți simulatorul iOS, ar trebui să puteți accesa site-uri web SSL cu Charles folosind SSL Proxying.
tvOS
Pentru a modifica setările proxy pe tvOS trebuie să utilizați Apple Configurator 2 din App Store.
- Create a New Profile
- Add a Global HTTP Proxy payload
- Proxy Type: Manual
- Completați serverul proxy și portul pentru a indica Charles de pe mașina dvs. de birou. Nu este necesar niciun nume de utilizator sau parolă.
- Adaugați certificatul Charles Root Certificate într-o sarcină utilă Certificates:
- În Charles, din meniul Help > SSL Proxying alegeți Save Charles Charles Charles Root Certificate, alegând formatul .cer din meniul dropdown filetype.
- În Apple Configurator 2, adăugați o sarcină utilă Certificates folosind acel fișier.
Deplasați profilul de configurare pe Apple TV.
Apoi intrați în Settings > General > About > Certificates (Setări > General > Despre > Certificates) și activați încrederea pentru certificatul Charles Proxy.
Android
De la Android N, trebuie să adăugați configurația aplicației dvs. pentru ca aceasta să aibă încredere în certificatele SSL generate de Charles SSL Proxying. Acest lucru înseamnă că puteți utiliza SSL Proxying numai cu aplicațiile pe care le controlați.
Pentru a configura aplicația dvs. pentru a avea încredere în Charles, trebuie să adăugați un fișier de configurare a securității rețelei la aplicația dvs. Acest fișier poate suprascrie valoarea implicită a sistemului, permițând aplicației dvs. să aibă încredere în certificatele CA instalate de utilizator (de exemplu, certificatul Charles Root). Puteți specifica faptul că acest lucru se aplică numai în compilările de depanare ale aplicației dvs., astfel încât compilările de producție să utilizeze profilul de încredere implicit.
Adaugați un fișier res/xml/network_security_config.xml la aplicația dvs.:
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
Apoi adăugați o referință la acest fișier în manifestul aplicației dvs., după cum urmează:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config" ... >
...
</application>
</manifest>
Google Chrome
Pe macOS, vă rugăm să urmați instrucțiunile pentru macOS de mai sus. Aceste instrucțiuni se aplică numai pe Windows.
În Charles mergeți la meniul Help și alegeți „SSL Proxying > Save Charles Root Certificate”. Salvați certificatul rădăcină ca un certificat binar (.cer) pe desktop sau undeva unde îl puteți accesa cu ușurință în pasul următor.
În Chrome, deschideți Settings. În partea de jos a paginii de setări, faceți clic pe „Advanced” (Avansat) pentru a deschide secțiunea avansată, apoi faceți clic pe butonul „Manage certificates…” (Gestionați certificatele…).
Apăsați fila „Trusted Root Certification Authorities” (Autorități de certificare rădăcină de încredere) și faceți clic pe „Import…”.
Căutați fișierul de certificat pe care l-ați salvat din Charles în pasul anterior, apoi faceți clic pe Next (Următorul) și Finish (Terminare), lăsând opțiunile implicite, până când finalizați importul. Chrome va avea acum întotdeauna încredere în certificatele semnate de Charles.
După import, puteți șterge fișierul de certificat pe care l-ați salvat.
Aplicații Java
Puteți adăuga certificatul rădăcină Charles la magazinul de încredere al certificatelor rădăcină din Java, apoi toate aplicațiile Java vor avea încredere în certificatele emise de Charles. Rețineți că este posibil să fie necesar să faceți acest lucru de fiecare dată când vă actualizați instalația Java.
În Charles mergeți la meniul Help (Ajutor) și alegeți „SSL Proxying > Save Charles Root Certificate”. Salvați certificatul rădăcină ca un certificat codificat Base 64 (.pem) pe desktop, sau undeva unde îl puteți accesa cu ușurință în pasul următor.
Acum găsiți fișierul cacerts, acesta ar trebui să fie în $JAVA_HOME/jre/lib/security/cacerts, unde $JAVA_HOME este directorul dvs. home java pentru JVM-ul pe care îl utilizați.
Pe Linux, $JAVA_HOME va fi probabil deja setat. Pe macOS, dacă nu este setat, încercați să rulați /usr/libexec/java_home pentru a obține locația JVM-ului dumneavoastră.
Apoi tastați (înlocuind $JAVA_HOME și calea corespunzătoare către certificat):
sudo keytool -import -alias charles -file ~/Desktop/charles-ssl-proxying-certificate.pem -keystore JAVA_HOME/jre/lib/security/cacerts -storepass changeit
(changeit este parola implicită în fișierul cacerts)
Pe Windows este posibil să fie nevoie să rulați cele de mai sus de la un prompt de comandă ca Administrator și să eliminați „sudo” de la începutul liniei.
Apoi încercați:
keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
Dacă aveți mai multe instalații Java s-ar putea să fie nevoie să vă dați seama pe care dintre ele le folosiți pentru a vă rula aplicația și să faceți acest lucru pe cea corespunzătoare. Sau faceți-o pe toate instalațiile Java.
Pe macOS, Java Plugin are fișierul cacerts la /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/security. Ar trebui să adăugați certificatul rădăcină Charles la acel fișier cacerts dacă doriți ca applet-urile care rulează în browserul dvs. să aibă încredere în Charles.
Python
Modul requests din Python va eșua cu o eroare atunci când încercați să îl utilizați cu SSL Proxying în Charles:
requests.exceptions.SSLError: certificate
verify failed (_ssl.c:590)
Puteți configura cererile pentru a avea încredere în certificatul rădăcină Charles. Mai întâi salvați-vă certificatul ca fișier .pem folosind meniul Help > SSL Proxying > Save Charles Root Certificate. Apoi configurați-vă sesiunea după cum urmează:
from requests import Session
session = Session()
session.verify = "charles-ssl-proxying-certificate.pem"
Mulțumiri lui Felipe Ferri pentru furnizarea acestui cod de exemplu.