安卓10以上无效
Android 7.0以上版本将Charles证书转换并添加到Android系统证书,方便HTTPS抓包
准备工作:

  1. 已root的手机一部
  2. 配置好SSL Proxying 的Charles(很简单自己百度即可)

实施流程:(Mac为例)
1.将Charles的证书导出(记住导出位置最后在终端要切换到这个位置来敲命令算hash值)
​ help --> SSL Proxying --> Save Charles Root Certificate…
2023-02-23T07:10:34.png
保存到电脑上的证书应该是这样的文件

​ charles-ssl-proxying-certificate.cer 或者 charles-ssl-proxying-certificate.pem

2.打开终端,切换到刚才保存证书的目录(我的保存在桌面)
​ cd Desktop

3.计算刚刚保存的证书文件的hash值
​ *.cer格式证书

​ openssl x509 -inform DER -subject_hash_old -in charles-ssl-proxying-certificate.cer

​ *.pem格式证书

​ openssl x509 -inform PEM -subject_hash_old -in charles-ssl-proxying-certificate.pem

4.计算完成会在终端显示出如下类容
2023-02-23T07:10:54.png
2231f757.0 就是此证书在安卓手机的证书名字

5.生成安卓手机预设格式证书文件
*.cer格式证书

openssl x509 -inform DER -text -in charles-ssl-proxying-certificate.cer > 2231f757.0

*.pem格式证书

openssl x509 -inform DER -text -in charles-ssl-proxying-certificate.pem > 2231f757.0

注意:此时我的桌面上(保存证书的文件夹)就会有一个 2231f757.0文件生成,打开该文件进行如下编辑
​ 将这一整段 -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- 剪切,复制到整个文件的开头位置

2023-02-23T07:11:14.png

  1. 在终端使用adb工具将电脑上的证书文件 2231f757.0安装到安卓手机的 /system/etc/security/cacerts目录里(此目录就是安卓手 机系统证书的目录)
    ​ 具体步骤如下:

​ 1.adb push 2231f757.0 /sdcard

​ 2.adb shell

​ 3. su

​ 4. mount -o rw,remount /system

​ 5. cp /sdcard/2231f757.0 /system/etc/security/cacerts/

​ 6. chmod 644 /system/etc/security/cacerts/2231f757.0

7.重启手机并进行查看
​ reboot

​ 查看:如下 2231f757.0 已经加入到系统证书目录中
2023-02-23T07:11:40.png

最后修改:2023 年 02 月 27 日
如果觉得我的文章对你有用,请随意赞赏