sfondo
Quando si utilizza un software di acquisizione dei pacchetti (prendendo Charles come esempio) per catturare la richiesta https dell'APP, sia Android che Charles hanno installato correttamente il certificato, ma la cattura dei pacchetti fallisce e viene segnalato un errore:
Handshake SSL del client fallito: si è verificato un problema sconosciuto nell'elaborazione del certificato (certificate_unknown)
Causa
Dopo Android7.0, il certificato CA aggiunto di default al sistema non è più affidabile:
Per offrire un'esperienza più coerente e sicura in tutto l'ecosistema Android, a partire da Android Nougat, i dispositivi compatibili si fidano solo delle CA di sistema standardizzate mantenute in AOSP .
Link alla documentazione:https://android-developers.googl ... ed-certificate.html
Questo significa che per le app basate su SDK24 e superiori, anche se hai un certificato dello strumento di acquisizione pacchetti installato sul telefono, non potrai catturare le richieste https.
soluzione
1. Soluzione ufficiale (modifica del codice necessaria)
Documentazione ufficiale:https://developer.android.google ... ecurity-config.html Dimostrazione dettagliata:https://blog.csdn.net/mrxiagc/article/details/75329629
2. Installare il certificato del software di cattura pacchetti come certificato di sistema (ROOT richiesto)
Directory certificati di sistema: /system/etc/security/cacerts/
La convenzione di denominazione per ogni certificato è la seguente:
<Certificate_Hash>. <Number> Il nome del file è un valore hash, mentre il suffisso è un numero.
Il nome del file può essere calcolato con il seguente comando:
Ad esempio, se il valore hash calcolato da due certificati è lo stesso, allora il numero di suffissi di un certificato può essere impostato a 0, e il numero di suffisso dell'altro certificato può essere impostato a 1
Passaggi:
Usa il comando sopra per calcolare il valore hash del certificato del software di cattura pacchetti, rinominalo e copialo nella directory dei certificati di sistema
Al momento, dovresti essere in grado di vedere il tuo nuovo certificato aggiunto nella scheda Sistema di Impostazioni - Sicurezza > - > Crittografia e Credenziali - > Credenziali Affidabili
|