君子积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里;不积小流,无以成江海。

环境

  • 系统:win11
  • Charles版本:4.6.6
  • 模拟器:逍遥模拟器

Charles和模拟器配置

  1. 点击help>SSL Proxying>Install Charles root Certificate 安装证书,
    image
    证书位置选择‘将所有的证书都放入下列存储’,证书存储选择受信任的根证书颁发机构
    image
  2. 点击proxy>SSL Proxying Settings打开如下弹框,勾选ssl代理开关,填写需要抓取https的host,port里填写443即可,也可以用*号代替
    image
  3. 打开charles,点击help>SSL Proxying>install charles ……………….browser弹出charles信息页面
    image
  4. 模拟器中配置代理,我是用的是postern工具,地址和端口填上面的
    image
  5. 下载证书,浏览器中输入chls.pro/ssl,如果下载不了就用这个网站https://www.charlesproxy.com/getssl/

出现问题

在抓取APP的https请求时,出现如下报错:

You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu.

问题原因

官方给出原文:https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
image
android 7及以上,需要配置可信证书:

  1. 在app开发时添加为可信证书
  2. 证书放到系统可信证书目录下(本文使用办法,好处是所有app都可以抓到)

解决步骤

  1. 计算证书hash值
    openssl x509 -inform PEM -subject_hash_old -in charles.pem
    image
  2. 把charles.pem 改名为 928a94cc.0
  3. 将文件放到共享文件夹,然后粘贴或者移动到”/system/etc/security/cacerts”目录下

    这里需要开启超级管理员权限,不知道怎么放共享文件,以及开启超级管理员权限,自行百度。

alt text

  1. 将文件权限改为777