安卓10以上无效
Android 7.0以上版本将Charles证书转换并添加到Android系统证书,方便HTTPS抓包
准备工作:
- 已root的手机一部
- 配置好SSL Proxying 的Charles(很简单自己百度即可)
实施流程:(Mac为例)
1.将Charles的证书导出(记住导出位置最后在终端要切换到这个位置来敲命令算hash值)
help --> SSL Proxying --> Save Charles Root Certificate…
保存到电脑上的证书应该是这样的文件
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.计算完成会在终端显示出如下类容
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----- 剪切,复制到整个文件的开头位置
- 在终端使用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 已经加入到系统证书目录中