安卓7.0及以上版本系统对于证书的安全策略做了修改,用户证书只能用于代理浏览器的流量,而应用是不会信任这些证书。以前的版本直接信任用户自己安装的证书。那怎么办?那我们把证书安装到系统证书目录就行了嘛。
(1).导出fiddler的证书文件
FiddlerRoot.cer
(2).计算哈希值
linux执行的命令:
openssl x509 -subject_hash_old -in ./FiddlerRoot.cer
windows执行的命令(git bash就行):
openssl x509 -subject_hash_old -in ./iddlerRoot.cer -inform der
我执行的输出结果:
e5c3944b -----BEGIN CERTIFICATE----- ---- -----END CERTIFICATE-----
前面的e5c3944b就是哈希
(3).将证书文件FiddlerRoot.cer重命名为e5c3944b.0
(4).将证书文件复制到安卓系统证书目录/system/etc/security/cacerts/下
(5).大多数手机重启即可,如果不行通过adb执行命令
chmod 644 /system/etc/security/cacerts/<hash>.0
执行命令如果报错,再执行下面命令后重试
mount -o rw,remount /system
然后在设置->安全中应该可以看到系统证书了,此时用手机连接fiddler的代理即可完美抓包。
提示:雷电模拟器好像有问题,上面是我在夜壶模拟器测试成功的