Certyfikaty SSL

Charles generuje własne certyfikaty dla witryn, które podpisuje przy użyciu certyfikatu głównego Charlesa, który jest generowany unikatowo dla Twojej instalacji Charlesa (od wersji 3.10). Jeśli otrzymasz ten certyfikat, w przeglądarce lub innej aplikacji pojawi się ostrzeżenie, ponieważ Charles Root Certificate nie znajduje się na liście zaufanych certyfikatów głównych. Zobacz SSL Proxying.

Możesz wybrać stałe zaufanie do każdego certyfikatu witryny, gdy go napotkasz, w tym przypadku nie musisz ufać Charles Root Certificate. Jeśli chcesz automatycznie ufać każdemu certyfikatowi wydanemu przez firmę Charles, kontynuuj te instrukcje.

Następujące instrukcje dotyczą różnych przeglądarek i aplikacji, które pomogą Ci zaufać certyfikatowi Charles Root Certificate, abyś nie widział już ostrzeżeń o certyfikatach.

Zauważ, że podejście do Charles Root Certificate zmieniło się wraz z wersją 3.10 Charlesa, więc jeśli już wykonałeś tę procedurę dla starszej wersji Charlesa, będziesz musiał zrobić to ponownie.

Windows / Internet Explorer

W Charlesie przejdź do menu Pomoc i wybierz „SSL Proxying > Install Charles Root Certificate”. Pojawi się okno ostrzegające, że certyfikat CA Root nie jest zaufany.

Kliknij przycisk „Install Certificate”, aby uruchomić kreatora importu certyfikatu. Certyfikat musi być zaimportowany do magazynu certyfikatów „Trusted Root Certification Authorities”, dlatego należy pominąć automatyczny wybór magazynu certyfikatów.

Kończąc pracę kreatora, Twój certyfikat Charles Root Certificate jest teraz zainstalowany. Może być konieczne ponowne uruchomienie IE, zanim instalacja zacznie działać.

Mozilla Firefox

Najpierw upewnij się, że Firefox jest podłączony do Charlesa. Powinieneś zobaczyć, że przeglądanie stron z Firefoksa jest rejestrowane w Charles.

Odwiedź https://chls.pro/ssl w Firefoksie. Pojawi się okno dialogowe importu certyfikatu. Zaznacz opcję „Trust this CA to identify websites” i zakończ import.

macOS

W Charles przejdź do menu Pomoc i wybierz „SSL Proxying > Install Charles Root Certificate”. Otworzy się Keychain Access. Znajdź wpis „Charles Proxy…” i kliknij dwukrotnie, aby uzyskać informacje na jego temat. Rozwiń sekcję „Trust” i obok „When using this certificate” zmień wartość z „Use System Defaults” na „Always Trust”. Następnie zamknij okno informacji o certyfikacie, a zostaniesz poproszony o hasło administratora, aby zaktualizować ustawienia zaufania systemu.

Może być konieczne zamknięcie i ponowne otwarcie Safari, aby zobaczyć zmianę.

urządzenia iOS

  • Ustaw urządzenie iOS do korzystania z Karola jako jego proxy HTTP w aplikacji Ustawienia >Ustawienia Wifi.
  • Otwórz Safari i przejdź do https://chls.pro/ssl. Safari wyświetli monit o zainstalowanie certyfikatu SSL.
  • Jeśli używasz systemu iOS 10.3 lub nowszego, otwórz aplikację Ustawienia.app i przejdź do Ogólne > O > Ustawienia zaufania do certyfikatu, a następnie znajdź certyfikat Charles Proxy i włącz go, aby włączyć pełne zaufanie do niego (Więcej informacji na temat tej zmiany w systemie iOS 10).
  • Teraz powinieneś być w stanie uzyskać dostęp do stron SSL z Charles używając SSL Proxying.

Charles obsługuje App Transport Security (ATS) od wydania 3.11.4.

iOS Simulators

Quitit your iOS Simulator. Uruchom Charlesa i przejdź do menu Pomoc. Wybierz element „SSL Proxy > Zainstaluj certyfikat główny Charlesa w symulatorach iOS”. Spowoduje to zainstalowanie certyfikatu Charles Root Certificate we wszystkich symulatorach iOS. Teraz, gdy uruchomisz symulator iOS, powinieneś być w stanie uzyskać dostęp do stron SSL z Charles używając SSL Proxying.

tvOS

Aby zmienić ustawienia proxy na tvOS musisz użyć Apple Configurator 2 z App Store.

  • Create a New Profile
  • Add a Global HTTP Proxy payload
    • Proxy Type: Manual
    • Wypełnij serwer proxy i port, aby wskazać na Charlesa na komputerze stacjonarnym. Nie jest wymagana nazwa użytkownika ani hasło.
  • Dodaj certyfikat Charles Root Certificate w pliku Certificates payload:
    • W programie Charles, z menu Help > SSL Proxying wybierz Save Charles Charles Root Certificate, wybierając format .cer z listy rozwijanej filetype.
    • W programie Apple Configurator 2 dodaj plik Certificates payload przy użyciu tego pliku.

Umieść profil konfiguracji na swoim Apple TV.

Potem wejdź w Ustawienia > Ogólne > O > Certyfikaty i włącz zaufanie dla certyfikatu Charles Proxy.

Android

Od Androida N, musisz dodać konfigurację do swojej aplikacji, aby zaufała certyfikatom SSL wygenerowanym przez Charles SSL Proxying. Oznacza to, że możesz używać SSL Proxying tylko z aplikacjami, które kontrolujesz.

Aby skonfigurować swoją aplikację, aby zaufać Charlesowi, musisz dodać Plik konfiguracyjny zabezpieczeń sieciowych do swojej aplikacji. Ten plik może zastąpić domyślne ustawienia systemowe, umożliwiając Twojej aplikacji zaufanie do certyfikatów CA zainstalowanych przez użytkownika (np. Charles Root Certificate). Możesz określić, że ma to zastosowanie tylko w kompilacjach debugowania aplikacji, tak aby kompilacje produkcyjne używały domyślnego profilu zaufania.

Dodaj plik res/xml/network_security_config.xml do swojej aplikacji:

<network-security-config> 
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>

Następnie dodaj odniesienie do tego pliku w manifeście swojej aplikacji, w następujący sposób:

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

Google Chrome

Na macOS, proszę postępować zgodnie z instrukcjami dla macOS powyżej. Te instrukcje dotyczą tylko systemu Windows.

W programie Charles przejdź do menu Pomoc i wybierz „SSL Proxying > Save Charles Root Certificate”. Zapisz certyfikat główny jako certyfikat binarny (.cer) na pulpicie lub w miejscu, w którym będziesz miał do niego łatwy dostęp w następnym kroku.

W przeglądarce Chrome otwórz Ustawienia. Na dole strony ustawień kliknij „Zaawansowane”, aby otworzyć sekcję zaawansowaną, a następnie kliknij przycisk „Zarządzaj certyfikatami…”.

Przejdź do zakładki „Zaufane urzędy certyfikacji root” i kliknij „Importuj…”.

Odszukaj plik certyfikatu, który zapisałeś z Charlesa w poprzednim kroku, a następnie kliknij Dalej i Zakończ, pozostawiając opcje domyślne, aż do zakończenia importu. Chrome będzie teraz zawsze ufać certyfikatom podpisanym przez Charlesa.

Po zaimportowaniu możesz usunąć zapisany plik certyfikatu.

Aplikacje Java

Możesz dodać certyfikat główny Charlesa do sklepu zaufania certyfikatów głównych w Javie, wtedy wszystkie aplikacje Java będą ufać certyfikatom wydawanym przez Charlesa. Należy pamiętać, że może to być konieczne przy każdej aktualizacji instalacji Java.

W programie Charles przejdź do menu Pomoc i wybierz „SSL Proxying > Save Charles Root Certificate”. Zapisz certyfikat główny w postaci zakodowanego certyfikatu Base 64 (.pem) na pulpicie lub w miejscu, w którym będziesz miał do niego łatwy dostęp w następnym kroku.

Teraz znajdź plik cacerts, powinien znajdować się w $JAVA_HOME/jre/lib/security/cacerts, gdzie $JAVA_HOME to katalog domowy java dla używanej maszyny JVM.

W systemie Linux, $JAVA_HOME prawdopodobnie jest już ustawiony. Na macOS, jeśli nie jest ustawiony, spróbuj uruchomić /usr/libexec/java_home, aby uzyskać lokalizację twojej JVM.

Następnie wpisz (zastępując $JAVA_HOME i odpowiednią ścieżkę do certyfikatu):

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

(changeit jest domyślnym hasłem w pliku cacerts)

W systemie Windows może być konieczne uruchomienie powyższego z wiersza poleceń jako Administrator i usunięcie „sudo” na początku linii.

Następnie spróbuj:

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

Jeśli masz wiele instalacji Javy, być może będziesz musiał sprawdzić, których używasz do uruchomienia swojej aplikacji i wykonać to na odpowiedniej z nich. Lub zrób to na wszystkich swoich instalacjach Java.

Na macOS wtyczka Java ma swój plik cacerts w /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/security. Powinieneś dodać certyfikat główny Charlesa do tego pliku cacerts, jeśli chcesz, aby aplety działające w przeglądarce ufały Charlesowi.

Python

Moduł requests Pythona zawiedzie z błędem, gdy spróbujesz go użyć z SSL Proxying w Charlesie:

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

Możesz skonfigurować żądania, aby ufały twojemu certyfikatowi głównemu Charlesa. Najpierw zapisz swój certyfikat jako plik .pem, korzystając z menu Pomoc > Proksowanie SSL > Zapisz certyfikat główny Charlesa. Następnie skonfiguruj swoją Sesję w następujący sposób:

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

Dziękuję Felipe Ferri za udostępnienie tego przykładowego kodu.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.