解决Android抓包之痛:将charles证书安装为已root手机的系统证书

2,260 阅读1分钟

Android7.0之后默认只信任系统证书,抓包变得麻烦了,自家的项目中需要设置android:networkSecurityConfig才能抓包,别家的话一般就只能采用下面的办法了。

1、准备一台已经root的手机(以小米6为例)。
2、电脑上下载好charles证书

Snipaste_2023-12-02_17-16-35.png (默认下载好的证书名字是charles-ssl-proxying-certificate.pem

3、使用这个命令会得到证书的哈希值(注意mac或者linux系统默认有安装openssl,windows系统可以自己装一下) openssl x509 -subject_hash_old -in charles-ssl-proxying-certificate.pem

image.png

4、修改证书名字为你得到的哈希值拼接 .0,例如我的证书名称将会修改为b5a1bed0.0
5. 将证书从电脑倒入你的手机,可以使用adb命令,例如 adb push /Users/my/Desktop/b5a1bed0.0 /storage/self/primary/aaa

(注意:/Users/my/Desktop/b5a1bed0.0是我的证书路径,/storage/self/primary/aaa是我手机中名称为aaa的一个文件夹,这个可以自行决定放在哪里只要在你的手机里就行)

6、手机安装好Root Explorer软件,使用Root Explorer复制证书到/system/etc/security/cacerts目录下(我试过了各种办法最终还是这种最方便有效,其他的例如使用命令移动然后修改权限之类的都不可靠)

为防大家下载错我贴一下Root Explorer的图标:

ww.jpg

7、修改证书权限,直接使用Root Explorer修改(使用其他文件管理器也行,例如MT管理器),选中你的证书然后点击右上角选择权限设定

qq.jpg 注意勾选上其他后面的两个勾,点击确定现在就可以愉快的抓包了。