用charles或fiddler抓app包的https接口必須要安裝ca證書,才能正常抓包,
安卓7之前把ca證書安裝到用戶證書下即可,但安卓7以上只有系統(tǒng)級證書才能被信任,所以為了能正常抓包,需要把ca證書安裝到系統(tǒng)證書下
準(zhǔn)備工作:
電腦安裝了Charles(其他抓包工具也是一樣的原理)
一臺已root手機(模擬器也可以,但部分app會檢測)
電腦安裝adb
1.下載證書

v2-1719359c9c98e33b716363c4e5a5442c_1440w.jpg
把證書(.pem格式)導(dǎo)出到本地路徑,名稱為charles.pem
2.修改名稱
打開終端cmd,并進(jìn)入到證書目錄,執(zhí)行以下命令:
openssl x509 -inform PEM -subject_hash_old -in charles.pem
此時cmd輸出如下:

image.png
將輸出的類似 ffab1f6d 的值進(jìn)行復(fù)制
重命名證書:
Android系統(tǒng)根目錄下的證書名格式:哈希值.數(shù)字,即<8位md值>.<0> , 后綴數(shù)字用來區(qū)分不同版本
本例子的證書名稱就是:ffab1f6d.0
導(dǎo)入到手機
執(zhí)行以下adb命令將證書導(dǎo)入到/system/etc/security/cacerts/
adb root
adb remount
adb push 8efb32d4.0 /sdcard/
adb shell
su
mount -o rw,remount /system
mv /sdcard/8efb32d4.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/8efb32d4.0
reboot
結(jié)束。