首先文章解決的是安卓手機安裝證書后依然無法抓包 https 請求。
問題背景
- 安卓系統>7.0,且應用不信任用戶安裝的證書文件
Fiddler 證書安裝到安卓根目錄
- 下載 fiddler 證書到電腦上
- 打開命令窗口,執行以下命令,查看證書信息
openssl x509 -inform DER -subject_hash_old -in FiddlerRoot.cer
- 保存上圖執行命令后第一行輸出內容,轉換證書格式:,把上個命令第一行輸入內容,命名為新文件名稱 +.0 后綴格式
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
- 保存上圖執行命令后第一行輸出內容,轉換證書格式:,把上個命令第一行輸入內容,命名為新文件名稱 +.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 工具包