Charles将证书设置为根证书

1.  下载证书:

在mac浏览器上下载: 

http://chls.pro/ssl

在Download目录上得到:charles-proxy-ssl-proxying-certificate.pem文件

 

2. 尝试执行:

openssl -subject_hash_old -in charles-proxy-ssl-proxying-certificate.pem |head -1

报错:openssl:Error: '-subject_hash_old' is an invalid command.

再尝试执行:

openssl x509 -in charles-proxy-ssl-proxying-certificate.pem -noout -subject_hash

得到:e7c27ccd

 如果需要将pem转cer:

openssl x509 -inform pem -in ../charles-proxy-ssl-proxying-certificate.pem -outform der -out xxxx.cer

 

3. 将文件push到根证书路径:

用户证书路径:/data/misc/user/0/cacerts-added

根证书路径: /etc/security/cacerts/

先查一下根证书路径下是否存在e7c27ccd开头的文件:

ls /etc/security/cacerts/ | grep e7c27ccd

如果新证书文件名为 存在的序号那么就是最大序号+1。一般情况下直接加.0

执行命令:

adb push charles-proxy-ssl-proxying-certificate.pem /etc/security/cacerts/e7c27ccd.0

报错:

charles-proxy-ssl-proxying-certificate.pem: 1 file pushed, 0 skipped. 0.7 MB/s (1885 bytes in 0.002s)
adb: error: failed to copy 'charles-proxy-ssl-proxying-certificate.pem' to '/etc/security/cacerts/e7c27ccd.0': remote couldn't create file: Permission denied

尝试执行:

# 再Mac机的控制台:
adb push charles-proxy-ssl-proxying-certificate.pem /sdcard/
# 在手机shell的控制台:
mount -o remount,rw /system
mv /sdcard/charles-proxy-ssl-proxying-certificate.pem /etc/security/cacerts/e7c27ccd.0
mount -o remount,ro /system

在手机上查看是否安装成功:

设置/搜索/(键入“凭据”)/ 点击信任的凭证

 

 滑最下面,可以看到XK开头的证书, 就说明成功了。 

 

posted @ 2021-07-20 10:58  Please Call me 小强  阅读(889)  评论(0编辑  收藏  举报