用charles或fiddler抓app包的https接口必须要安装ca证书,才能正常抓包,

安卓7之前把ca证书安装到用户证书下即可,但安卓7以上只有系统级证书才能被信任,所以为了能正常抓包,需要把ca证书安装到系统证书下

准备工作:

  • 电脑安装了Charles(其他抓包工具也是一样的原理)
  • 一台已root手机(模拟器也可以,但部分app会检测)
  • 电脑安装adb

没准备好的网上找吧,很多相关内容

Charles基础配置也到网上找吧,只说抓取https的配置

Proxy > SSL Proxying Settings > add *.* 或者*.443

制作证书

  1. 导出证书

把证书(.pem格式)导出到本地路径,名称为charles.pem, 并到该路径打开cmd

2.修改名称

openssl x509 -inform PEM -subject_hash_old -in cacert.pem 

将输出的类似 8efb32d4 的值进行复制

重命名证书:

格式 哈希值.数字 , 后缀数字用来区分不同版本

    ren charles.pem  8efb32d4.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

到手机系统设置 > 更多设置 > 系统安全 > 加密与凭证 > 信任的凭证,在系统下找到刚才安装的证书(不同手机位置可能不同)

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐