前言
Android7以后,系統不再信任用戶級的證書,只信任系統級的證書,所以要抓https的包就需要把我們的代理程序證書安裝至Android的系統目錄中。
解決有二種方案:
- 在app清單文件AndroidManifest.xml中開啟網絡安全配置,信任用戶證書,重新打包APP;
- 將代理程序的證書安裝至Android的系統目錄
系統證書導入
證書准備
環境需求:
- 一台已root的android設備
- openssl
①將Filddler或者其他抓包程序的證書導出,一般為xxx.cer或者xxx.pem
②使用openssl的x509指令進行cer證書轉pem證書 和 用md5方式顯示pem證書的hash值
// 1.證書轉換,已經是pem格式的證書不需要執行這一步
openssl x509 -inform DER -in xxx.cer -out cacert.pem
// #2. 進行MD5的hash顯示
openssl版本在1.0以上的版本的執行這一句
openssl x509 -inform PEM -subject_hash_old -in cacert.pem
openssl版本在1.0以下的版本的執行這一句
openssl x509 -inform PEM -subject_hash -in cacert.pem
將pem證書重命名
mv cacert.pem 347bacb5.0
將新證書放入手機系統證書目錄
系統證書目錄位置,需要拷貝至此目錄必須擁有root權限
可以使用root explorer
工具操縱系統目錄
/system/etc/security/cacerts
重啟手機就可以使證書生效了