用charles或fiddler抓app包的https接口必须要安装ca证书,才能正常抓包,
安卓7之前把ca证书安装到用户证书下即可,但安卓7以上只有系统级证书才能被信任,所以为了能正常抓包,需要把ca证书安装到系统证书下
准备工作:
电脑安装了Charles(其他抓包工具也是一样的原理)
一台已root手机(模拟器也可以,但部分app会检测)
电脑安装adb
1.下载证书
v2-1719359c9c98e33b716363c4e5a5442c_1440w.jpg把证书(.pem格式)导出到本地路径,名称为charles.pem
2.修改名称
打开终端cmd,并进入到证书目录,执行以下命令:
openssl x509 -inform PEM -subject_hash_old -in charles.pem
此时cmd输出如下:
image.png将输出的类似 ffab1f6d 的值进行复制
重命名证书:
Android系统根目录下的证书名格式:哈希值.数字,即<8位md值>.<0> , 后缀数字用来区分不同版本
本例子的证书名称就是:ffab1f6d.0
导入到手机
执行以下adb命令将证书导入到/system/etc/security/cacerts/
adb root
adb remount
adb push 8efb32d4.0 /sdcard/
adb shell
su
mount -o rw,remount /system
mv /sdcard/8efb32d4.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/8efb32d4.0
reboot
结束。
网友评论