Android 7.0+ https 抓包
Android7.0之前的版本,安装Charles提供的证书就可以实现抓https包
但是在Android 7.0以后,google推出更加严格的安全机制,这使得user域的证书不被信任。
如果是自己开发app的话,可以通过这个链接调整项目相关配置实现抓包,但是如果不是自己的app那就没啥好的方法了。
以下提供一种root之后抓包的方法。
其实原理很简单,就是把user域的证书放入到system域。
- 获取抓包软件证书,一般抓报软件提供https抓包功能的都会提供这个。charles可参考这个链接
通过openssl把证书转成适用的格式(crt转x509)
# crt格式文件 xxx.crt openssl x509 -inform PEM -subject_hash_old -in xxx.crt | head -1 # 得到类似字符串9a5ba575 cat xxx.crt > 9a5ba575.0 openssl x509 -inform PEM -text -in xxx.crt -out /dev/null >> 9a5ba575.0
- 将
9a5ba575.0
(不一定叫这个名字,后缀一般是.0)放入/system/etc/security/cacerts
(或者/system/ca-certificates/files/
,不同系统版本可能不一样),可以通过adb进行操作,也可以通过一些文件管理器(比如mixplorer,root文件管理器)获取root权限后进行操作。具体可参考这个链接
备注:更简单一点的方法,首先安装用户证书,然后找到用户证书/data/misc/user/0/cacerts-added
,然后放到/system/etc/security/cacerts
即可(re管理器挂载目录为可读写)
参考链接: