安卓手机添加charles系统证书方法(HTTPS抓包)
安卓7.0以后,安卓不信任用户安装的证书,所以抓https时无法解码请求
注:需要手机有root权限,以下操作以小米为例,其他品牌手机操作可能有差别。
-
导出证书
这里我保存到桌面 -
将导出的证书计算HASH值
//以下根据导出的证书格式2选1
//.cer格式证书
openssl x509 -inform DER -subject_hash_old -in 证书文件.cer
//.pem格式证书
openssl x509 -inform PEM -subject_hash_old -in 证书文件.pem
- 生成系统预设格式证书文件
以下xxxxxxx.0为上面计算的hash值
//cer格式
openssl x509 -inform DER -text -in xxx.cer > xxxxxxxx.0
//pem格式
openssl x509 -inform PEM -text -in xxx.pem > xxxxxxxx.0
- 编辑生成的证书文件
将红框中的内容复制到xxxxxxxx.0的文件前面
- 上传证书
将编辑好的证书上传到手机的/system/etc/security/cacerts目录下
# 查看手机是否连接成功
adb devices
# 将证书传到手机中
adb push e1078146.0 /sdcard
# 进入手机命令行
adb shell
# 切换超级管理员(需要手机获取root权限)
su
# 给系统盘写权限
mount -o remount,rw /system
#mount -o rw,remount /system
# 将证书移到手机的证书目录
cp /sdcard/e1078146.0 /system/etc/security/cacerts/
# 给证书授权
chmod 644 /system/etc/security/cacerts/e1078146.0
- 手机重启