fond
Când se folosește un software de captură a pachetelor (luând exemplul lui Charles) pentru a captura cererea https a aplicației, atât Android, cât și Charles au instalat corect certificatul, dar capturarea pachetelor eșuează și se raportează o eroare:
Handshake-ul SSL al clientului a eșuat: A apărut o problemă necunoscută la procesarea certificatului (certificate_unknown)
Cauză
După Android7.0, certificatul CA adăugat implicit în sistem nu mai este de încredere:
Pentru a oferi o experiență mai consecventă și mai sigură în întregul ecosistem Android, începând cu Android Nougat, dispozitivele compatibile au încredere doar în CA-urile standardizate ale sistemului menținut în AOSP .
Link pentru documentație:https://android-developers.googl ... ed-certificate.html
Aceasta înseamnă că, pentru aplicațiile bazate pe SDK24 și cele superioare, chiar dacă ai un certificat al uneltei de capturare a pachetelor instalat pe telefon, nu vei putea captura cereri https.
soluție
1. Soluție oficială (necesită modificare a codului)
Documentație oficială:https://developer.android.google ... ecurity-config.html Demonstrație detaliată:https://blog.csdn.net/mrxiagc/article/details/75329629
2. Instalarea certificatului software-ului de captare a pachetelor ca certificat de sistem (necesită ROOT)
Directorul certificatelor sistemului: /system/etc/security/cacerts/
Convenția de denumire pentru fiecare certificat este următoarea:
<Certificate_Hash>. <Number> Numele fișierului este o valoare hash, în timp ce sufixul este un număr.
Numele fișierului poate fi calculat cu următoarea comandă:
De exemplu, dacă valoarea hash calculată de două certificate este aceeași, atunci numărul sufixului unui certificat poate fi setat la 0, iar numărul sufixului celuilalt certificat poate fi setat la 1
Pași:
Folosiți comanda de mai sus pentru a calcula valoarea hash a certificatului software-ului de capturare a pachetelor, redenumiți-o și copiați-o în directorul certificatului sistemului
În acest moment, ar trebui să poți vedea certificatul nou adăugat în fila System din Setări - Securitate > - > Criptare & Credențiale - > Credențiale de încredere
|