安卓7.0及以上系统对于证书的安全策略做了修改,用户证书只能用于代理浏览器的流量,而应用是不会信任这些证书。(ios和安卓<7.0的版本没有此问题)
官方说明文档:https://developer.android.com/training/articles/security-config.html
Android 7.0 之后,默认不再信任用户自己安装的证书,但是引入配置文件可配置相关策略
解决办法 :将抓包软件的证书安装成系统证书(需要ROOT权限)
1. 把证书文件转换为Android可识别格式
以DER格式导出CA证书,保存为FiddlerRoot.cer
将DER转为PEM格式证书,并且文件名为subject_hash_old值并以.0结尾
当OpenSSL 版本<1.0时,文件名为subject_hash
使用openssl将DER转换成PEM,然后输出subject_hash_old并重命名该文件
# cer格式证书
openssl x509 -inform DER -subject_hash_old -in <Certificate_File>
openssl x509 -inform DER -in <Certificate_File> -text > <Certificate_Hash>.<Number>
# pem格式证书
openssl x509 -inform PEM -subj