參考2:https://www.cnblogs.com/duobazi/p/11588993.html
參考3:https://blog.csdn.net/ShadowySpirits/article/details/79756274
=====================================================================================================
解決Charles不能抓到https的問題
1.用Charles導出證書,隨便命名 charles.pem
2.安裝open ssl(http://slproweb.com/products/Win32OpenSSL.html),然后配置環境變量,把openssl安裝路徑bin的路徑(例如 C:\OpenSSL-Win64\bin)加入到操作系統的系統環境變量Path中
3.將導出的的證書(charles.pem)導入電腦中
4.在cmd中輸入
openssl x509 -subject_hash_old -in <Certificate_File>
<Certificate_File>為剛才下載的證書(charles.pem),這個路徑為絕對路徑
然后將 charles.pem 這個文件改為 生成的數字加.0,例如
5.然后在用前端根證書導入的方法導入證書
adb root
adb remount
adb push 0505096d.0 /etc/security/cacerts/
adb shell chmod 644 /etc/security/cacerts/0505096d.0
如果remount或push失敗,需要執行以下命令
adb disable-verity
adb reboot
6.以上方法一般可以抓到了,如果還是不行,需要配置 Proxy——SSL Proxying Settings——SSL Proxying,勾選Enable ——SSL Proxying,點擊“add”,將Host和Port配置為*,如下圖所示:
=========================================================================================================
給Android7及以上的手機安裝系統級證書,實現HTTPS的抓包
Android7以后,系統不再信任用戶級的證書,只信任系統級的證書,所以要抓包就需要把我們的代理程序證書安裝至Android的系統目錄中
准備
- 一台已root的手機
- Openssl
證書生成
執行命令:C:\Users\del>cd C:\Users\del\Desktop
執行命令:C:\Users\del\Desktop>openssl x509 -subject_hash_old -in Charles.pem
然后改名:
將新證書放入手機系統證書目錄
手機系統目錄位置是:
/system/etc/security/cacerts
需要拷貝至此目錄必須擁有root權限
重啟Android設備以生效
拷貝證書至/system/etc/security/cacerts
之后,重啟手機就可以使證書生效了
5.然后在用前端根證書導入的方法導入證書
adb root
adb remount
adb push 0505096d.0 /etc/security/cacerts/
adb shell chmod 644 /etc/security/cacerts/0505096d.0
如果remount或push失敗,需要執行以下命令
adb disable-verity
adb reboot
6.以上方法一般可以抓到了,如果還是不行,需要配置 Proxy——SSL Proxying Settings——SSL Proxying,勾選Enable ——SSL Proxying,點擊“add”,將Host和Port配置為*,如下圖所示: