Taust
Kui kasutada pakettide püüdmise tarkvara (näiteks Charles) rakenduse https-päringu salvestamiseks, on nii Android kui Charles sertifikaadi õigesti installinud, kuid pakettide püüdmine ebaõnnestub ja teatatakse vea:
Kliendi SSL-käepigistus ebaõnnestus: sertifikaadi töötlemisel tekkis tundmatu probleem (certificate_unknown)
Põhjus
Pärast Android7.0-d ei usaldata vaikimisi süsteemi lisatud CA sertifikaati:
Et pakkuda ühtlasemat ja turvalisemat kogemust kogu Androidi ökosüsteemis, alustades Android Nougatist, usaldavad ühilduvad seadmed ainult AOSP-s hoitud standardiseeritud süsteemi CA-sid. .
Dokumentatsiooni link:https://android-developers.googl ... ed-certificate.html
See tähendab, et SDK24 ja uuemate rakenduste puhul, isegi kui sul on telefoni installitud pakettide püüdmise tööriista sertifikaat, ei saa sa https-päringuid kinni püüda.
lahus
1. Ametlik lahendus (vajalik koodi muutmine)
Ametlik dokumentatsioon:https://developer.android.google ... ecurity-config.html Detailne demonstratsioon:https://blog.csdn.net/mrxiagc/article/details/75329629
2. Paigalda pakettide püüdmise tarkvara sertifikaat süsteemisertifikaadina (ROOT vajalik)
Süsteemisertifikaadi kataloog: /system/etc/security/cacerts/
Iga sertifikaadi nimetamise konventsioon on järgmine:
<Certificate_Hash>. <Number> Failinimi on räsi väärtus, samas kui järelliide on number.
Faili nime saab arvutada järgmise käsuga:
Näiteks, kui kahe sertifikaadi arvutatud räsi väärtus on sama, saab ühe sertifikaadi sufiksi numbriks määrata 0 ja teise sertifikaadi sufiksi numbriks 1
Sammud:
Kasuta ülaltoodud käsku, et arvutada pakettide püüdmise tarkvara sertifikaadi räsi väärtus, nimetada see ümber ja kopeerida süsteemi sertifikaadi kataloogkonda
Praegu peaksite nägema oma äsja lisatud sertifikaati Seadete - > turvalisuse - > Krüpteerimise ja mandaadi - > Usaldusväärsete mandaate süsteemi vahekaardil
|