从Android7.0之后开始,用户自行安装的证书在用户目录下,无法进行证书信任,导致Charles无法进行https抓包
方案:
1. 获取手机root权限
有些模拟器可以直接开启root权限;
有些Android手机可以直接开启root权限。
2. 电脑生成证书,将证书传入系统证书目录
- 电脑生成证书:
- 生成证书后,使用如下命令将证书转化为 .0 后缀的文件
openssl x509 -subject_hash_old -in /Users/liuyongjie/Downloads/charles-ssl-proxying-certificate.pem
执行完成后,直接将证书文件的后缀改为 38bf9117.0
, 文件名称的数字是执行完命令后,第一行那个名称,如上图。
3. 将证书传入模拟器的系统目录文件里。
adb push /Users/liuyongjie/Downloads/38bf9117.0 /etc/security/cacerts/
2. 手机直接安装证书,将安装的证书从用户目录移动至系统目录下
系统证书目录:
/system/etc/security/cacerts/
用户证书目录:
/data/misc/user/0/cacerts-added