首先文章解決的是安卓手機安裝證書后依然無法抓包https請求
問題背景
- 安卓系統>7.0,且應用不信任用戶安裝的證書文件
Fiddler證書安裝到安卓根目錄
- 下載fiddler證書到電腦上
- 打開命令窗口,執行以下命令,查看證書信息
#Fiddler文件
openssl x509 -inform DER -subject_hash_old -in FiddlerRoot.cer
Fiddler文件
保存上圖執行命令后第一行輸出內容,轉換證書格式:,把上個命令第一行輸入內容,命名為新文件名稱+.0后綴格式,如果證書名字一樣明明為文件名+.1即可,以此類推還可以文件名+.2 文件名+.3....
openssl x509 -inform DER -in FiddlerRoot.cer -text > e5742ab9.0
編輯輸出的文件,把"-----BEGIN CERTIFICATE-----"到文件結束這部分移動到文件首部
執行adb命令連接手機,獲取權限,把文件夾掛載為讀寫模式,把文件復制到證書根目錄
adb root
adb remount
adb shell mount -o rw,remount /system
adb push e5742ab9.0 /system/etc/security/cacerts
以上就OK了。如果不放心可以cd 到對應目錄,檢查文件是否存在,文件權限是否與其他證書一致
證書安裝OK,其他代理選項正常配置即可
Charles證書安裝到安卓根目錄
- 下載證書到電腦上
- 打開命令窗口執行以下命令,查看證書信息
openssl x509 -subject_hash_old -in charles-ssl-proxying-certificate.pem
Charles文件
保存上圖執行命令后第一行輸出內容,轉換證書格式:,把上個命令第一行輸入內容,命名為新文件名稱+.0后綴格式
mv charles-ssl-proxying-certificate.pem e5742ab9.0
執行adb命令連接手機,獲取權限,把文件夾掛載為讀寫模式,把文件復制到證書根目錄
adb root
adb remount
adb shell mount -o rw,remount /system
adb push e5742ab9.0 /system/etc/security/cacerts
以上就OK了。如果不放心可以cd 到對應目錄,檢查文件是否存在,文件權限是否與其他證書一致
證書安裝OK,其他代理選項正常配置即可
問題解決
error: no devices/emulators found或者adb: unable to connect for root: no devices/emulators found
adb disable-verity
adb reboot # 重啟
然后重新按照上面的步驟操作
如果提示adb命令參數錯誤,找一個版本高點的adb工具包