起初
在某一天,想抓取某APP应用的时候,使用Fiddler进行抓包,发现没有抓取到HTTPS,证书也安装了,后来查阅资料后,发现在安卓7.0及以后,谷歌调整了安全策略,对于用户添加的CA证书不在信任。在抓取HTTPS的时候又需要导入CA证书才行,由于不再信任用户自己导入的证书,所以需要将证书安装在系统证书中,这样才能实现抓包自由。
环境
- 一台root手机
- re文件管理器(安卓)
- 该电脑需要安装openssl 工具
整活
先导出证书
这边使用Fiddler做示例,其他抓包工具都大同小异, 打开Fiddler工具,Tools -> Options -> https -> Actions 然后选择导出证书到桌面,按照证书时,记住自己的安装的路径,我们下一步需要找到他。
安装成功后,我们在回到Fiddler中,在导出证书的界面上,选择 open windows Certificate Manager ,找到我们刚刚安装的证书,因为我之前就已经安装了一个,所以会出现2个,选择截止日期长的那个。
右键 所有任务 - 导出 - Base64格式
到这里导出证书完成。
安装到安卓上
拿到证书后,我们需要把他安装到手机上,在这么做之前,我们还需要一步准备工作,那就是计算hash值,目的是为了按照安卓的系统证书格式保持一致。 计算hash值命令:
openssl x509 -subject_hash_old -in 证书名 然后就会有hash值出来,把这个hash值复制后,对导出的证书重命名 -> hash值.0 没错格式名也要换,后缀为0
安卓系统证书路径在: /system/etc/security/cacerts
我们把证书拷贝到手机中,使用re文件管理器把证书拷贝在上述路径中,然后参照其他证书权限,把我们的证书权限更改为系统证书权限一致即可。
最后重启手机。抓包成功!
|