【简记】使用charles抓微信小程序配置htts证书的前提条件

说明

昨天晚上,朋友找我帮忙,说为了了解公司项目的业务,需要对微信小程序进行抓包,配置好久也不能用,让我帮忙看看,后来一步步配置发现了好多坑,所以记录一下,防止再踩

条件

安卓手机与苹果手机的微信信任度不一样,以下区分说明下

安卓手机

场景:

  • 安卓 7.x 以下,任意微信版本均信任系统与用户证书,只需要访问charles下载证书地址,并安装证书即可
  • 安卓 7.x && 微信 7.0 以下版本,信任系统与用户证书,仅需安装证书
  • 安卓 7.x && 微信 7.0 以上版本,只信任系统证书,需要root,添加证书到系统证书目录中

使用root添加证书到系统目录方式,使用adb推送
1.手机端挂上charles代理,并使用usb连接手机,使用文件传输模式,手机设置进入开发者模式,开启adb调试并授权
2.手机端访问,下载证书到手机,将证书复制到电脑上
3.计算证书hash值,并重命名,格式为:.

openssl x509 -noout -subject_hash_old -in 

举例:

将输出的 hash 值,添加.0, 组合成证书文件新名称,修改证书文件名

.0 的作用是防止hash冲突,如果冲突了,就将0递增1位,依次类推。

4.使用 adb 推送到手机目录中

adb root
adb remount
adb disable-verity
adb push  /system/etc/security/cacerts

例:

adb push b1bfb5ff.0  /system/etc/security/cacerts

不使用adb,通过RootExplorer复制改名后的证书到/system/etc/security/cacerts,并修改文件权限 644,即 rw-r--r--,如果没立即生效,重启手机

5.抓包验证

苹果手机

  • 安装证书,直接可用。IOS 12需要设置 通用-关于本机-证书信任设置 中开启证书

可行方案

  • 使用安卓7以下版本系统,不要求微信版本
  • 使用安卓7以上版本系统,安装旧版本微信(7.0 以下)
  • 使用安卓7以上版本系统,使用 root 权限将证书复制到系统证书目录中
  • 有苹果手机的直接安装证书使用
  • 没有苹果手机,还不想折腾的,向公司测试申请苹果手机

你可能感兴趣的:(【简记】使用charles抓微信小程序配置htts证书的前提条件)