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开头的证书, 就说明成功了。