首先文章解決的是安卓手機安裝證書后依然無法抓包https請求
問題背景
- 安卓系統(tǒng)>7.0,且應(yīng)用不信任用戶安裝的證書文件
Fiddler證書安裝到安卓根目錄
- 下載fiddler證書到電腦上
- 打開命令窗口,執(zhí)行以下命令,查看證書信息
#Fiddler文件
openssl x509 -inform DER -subject_hash_old -in FiddlerRoot.cer

Fiddler文件
保存上圖執(zhí)行命令后第一行輸出內(nèi)容,轉(zhuǎn)換證書格式:,把上個命令第一行輸入內(nèi)容,命名為新文件名稱+.0后綴格式,如果證書名字一樣明明為文件名+.1即可,以此類推還可以文件名+.2 文件名+.3....
openssl x509 -inform DER -in FiddlerRoot.cer -text > e5742ab9.0
編輯輸出的文件,把"-----BEGIN CERTIFICATE-----"到文件結(jié)束這部分移動到文件首部
執(zhí)行adb命令連接手機,獲取權(quán)限,把文件夾掛載為讀寫模式,把文件復(fù)制到證書根目錄
adb root
adb remount
adb shell mount -o rw,remount /system
adb push e5742ab9.0 /system/etc/security/cacerts
以上就OK了。如果不放心可以cd 到對應(yīng)目錄,檢查文件是否存在,文件權(quán)限是否與其他證書一致
證書安裝OK,其他代理選項正常配置即可
Charles證書安裝到安卓根目錄
- 下載證書到電腦上
- 打開命令窗口執(zhí)行以下命令,查看證書信息
openssl x509 -subject_hash_old -in charles-ssl-proxying-certificate.pem

Charles文件
保存上圖執(zhí)行命令后第一行輸出內(nèi)容,轉(zhuǎn)換證書格式:,把上個命令第一行輸入內(nèi)容,命名為新文件名稱+.0后綴格式
mv charles-ssl-proxying-certificate.pem e5742ab9.0
執(zhí)行adb命令連接手機,獲取權(quán)限,把文件夾掛載為讀寫模式,把文件復(fù)制到證書根目錄
adb root
adb remount
adb shell mount -o rw,remount /system
adb push e5742ab9.0 /system/etc/security/cacerts
以上就OK了。如果不放心可以cd 到對應(yīng)目錄,檢查文件是否存在,文件權(quán)限是否與其他證書一致
證書安裝OK,其他代理選項正常配置即可
問題解決
error: no devices/emulators found或者adb: unable to connect for root: no devices/emulators found
adb disable-verity
adb reboot # 重啟
然后重新按照上面的步驟操作
如果提示adb命令參數(shù)錯誤,找一個版本高點的adb工具包