安卓7.0以后,安卓不信任用戶安裝的證書,所以抓https時(shí)無法解碼請(qǐng)求,對(duì)于第三方應(yīng)用,需要將證書添加為系統(tǒng)證書,網(wǎng)上解決方法較多,比如使用安卓模擬器(兼容性差,很多應(yīng)用閃退),使用xposed框架等,這里使用安卓手機(jī)添加證書。 注:需要手機(jī)有root權(quán)限,以下操作以小米9 SE為準(zhǔn),其他品牌手機(jī)操作可能有差別。 help --> SSL Proxying --> Save Charles Root Certificate... 2. 安卓證書儲(chǔ)存格式#Copy證書路徑: /system/etc/security/cacerts 文件命名格式(如果計(jì)算出來的hash值已經(jīng)存在則編號(hào)依次+1): <證書Hash值>.編號(hào) 3. 將導(dǎo)出的證書計(jì)算hash值#需要安裝openssl: win10下安裝 Copy//以下根據(jù)導(dǎo)出的證書格式2選1//.cer格式證書openssl x509 -inform DER -subject_hash_old -in 證書文件.cer//.pem格式證書openssl x509 -inform PEM -subject_hash_old -in 證書文件.pem 計(jì)算結(jié)果: 4. 生成系統(tǒng)系統(tǒng)預(yù)設(shè)格式證書文件#Copy//cer格式openssl x509 -inform DER -text -in xxx.cer > 0dd2455e.0//pem格式openssl x509 -inform PEM -text -in xxx.pem > 0dd2455e.0 最后編輯一下輸出的文件,把 -----BEGIN CERTIFICATE----- 到最后的這部分移動(dòng)到開頭。結(jié)果如下 5. 上傳證書#上傳證書文件0dd2455e.0到手機(jī)/system/etc/security/cacerts路徑下。 方法1: 使用adb連接 Copy執(zhí)行: 1. adb push 0dd2455e.0 /sdcard 2. adb shell 3. su 4. mount -o remount,rw /system#mount -o rw,remount /system5. cp /sdcard/0dd2455e.0 /system/etc/security/cacerts/ 6. chmod 644 /system/etc/security/cacerts/0dd2455e.0 方法2: 使用第三方文件管理器(推薦)
到此然后重啟手機(jī)。就可以正常抓https數(shù)據(jù)包了。 |
|