Przed Androidem KitKat musisz zrootować swoje urządzenie, aby zainstalować nowe certyfikaty.
Od Androida KitKat (4.0) do Nougat (7.0) jest to możliwe i łatwe. Udało mi się zainstalować certyfikat Charles Web Debbuging Proxy na moim niezrootowanym urządzeniu i pomyślnie wykryć ruch SSL.
Wyciąg z http://wiki.cacert.org/FAQ/ImportRootCert
Przed wersją Androida 4.0, z wersją Androida Gingerbread & Froyo, istniał jeden plik tylko do odczytu (/system/etc/security/cacerts.bks) zawierający magazyn zaufania ze wszystkimi certyfikatami CA („systemowymi”) zaufanymi domyślnie Android. Korzystają z tego zarówno aplikacje systemowe, jak i wszystkie aplikacje opracowane za pomocą zestawu Android SDK. Skorzystaj z tych instrukcji dotyczących instalowania certyfikatów CAcert na urządzeniach z Androidem Gingerbread, Froyo, ...
Począwszy od Androida 4.0 (Android ICS / „Ice Cream Sandwich”, Android 4.3 „Jelly Bean” i Android 4.4 „KitKat”) zaufane certyfikaty systemu znajdują się na (tylko do odczytu) partycji systemowej w folderze „/ system / etc /” security / ”jako pojedyncze pliki. Jednak użytkownicy mogą teraz łatwo dodawać własne certyfikaty „użytkownika”, które będą przechowywane w „/ data / misc / keychain / certs-added”.
Certyfikatami zainstalowanymi w systemie można zarządzać na urządzeniu z systemem Android w sekcji Ustawienia -> Bezpieczeństwo -> Certyfikaty -> „System”, podczas gdy zaufane certyfikaty użytkowników można zmieniać w sekcji „Użytkownik”. Korzystając z zaufanych certyfikatów użytkownika, system Android zmusi użytkownika urządzenia z systemem Android do wdrożenia dodatkowych środków bezpieczeństwa: użycie kodu PIN, blokady wzoru lub hasła do odblokowania urządzenia jest obowiązkowe, gdy używane są certyfikaty dostarczone przez użytkownika.
Instalowanie certyfikatów CAcert jako certyfikatów „zaufanych użytkownikom” jest bardzo łatwe. Instalowanie nowych certyfikatów jako certyfikatów „zaufanych w systemie” wymaga więcej pracy (i wymaga uprawnień administratora), ale ma tę zaletę, że pozwala uniknąć wymogu blokady ekranu Androida.
Począwszy od Androida N staje się to trudniejsze, zobacz ten fragment z witryny Charles proxy :
Począwszy od Androida N, musisz dodać konfigurację do swojej aplikacji, aby ufała certyfikatom SSL generowanym przez Charles SSL Proxying. Oznacza to, że możesz używać proxy SSL tylko z aplikacjami, które kontrolujesz.
Aby skonfigurować aplikację, aby ufała Charles, musisz dodać do niej plik konfiguracji zabezpieczeń sieci. Ten plik może zastąpić domyślne ustawienie systemowe, umożliwiając aplikacji zaufanie certyfikatów CA zainstalowanych przez użytkownika (np. Certyfikat Charles Root). 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>
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
Następnie dodaj odwołanie do tego pliku w manifeście aplikacji w następujący sposób:
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<application android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>