Charles 对手机抓包的详细配置(HTTP/HTTPS)

21,731 阅读2分钟

版本

  • macOS Sierra 10.12.6
  • Charles V4.2
  • iPhone 11.0.3

得到本机 IP 地址

三种方法,任取其一。

  • 系统偏好设置 -> 网络 -> Wi-Fi
  • Charles -> Help -> Local IP Address
  • 终端命令 ifconfig | grep -A 5 en0

Charles 与手机的连接

Mac 与 iPhone 处于同一 Wi-Fi 网络。

手机的设置

  1. 手机 - 设置 - 无线局域网 - 点击连接的 Wi-Fi
  2. 点击「配置代理」
  3. 配置代理 - 手动代理
  4. 配置代理 - 服务器,填写「本机 IP 地址」
  5. 配置代理 - 端口,填写 「8888」,这是 Charles 的默认端口,如果修改了 Charles 的端口,那就填写实际的端口
  6. 保存

Charles 会弹框让你选择是否允许连接,如果要抓包的话,需要选择 Allow。

这个时候手机进行 HTTP 的访问就可以在 Charles 看到了。

抓包 HTTPS

如果手机里面访问的 HTTPS 协议的,Charles 会显示错误 unknown,错误信息「SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations」

抓取 HTTPS 的内容要在 Charles 与手机已经连接成功,并且 Charles 是打开状态下进行以下设置。

Mac 安装证书

Charles - Help - SSL Proxying - Install Charles Root Certificate

手机安装证书

Charles - Help - SSL Proxying - Install Charles Root Certificate on a Mobile Device

弹框显示安装地址,我这里显示的是 「chls.pro/ssl」,手机访问此地址后进行证书的安装。

证书安装完成后,在「设置 - 通用 - 关于本机 - 证书信任设置 - 针对根证书启用完全信任」中开启 Charles...

Charles 设置 Proxy

配置项在 Charles - Proxy - SSL Proxying Settings...

勾选 Enable SSL Proxying,点击 Add,填写 Host(你需要抓取的地址)和 Port(一般填写 443)。Host 可以使用通配符 ,我为了简单省事 Host 的填写为了 ,OK 后,如果没有自动勾选刚才 Add 增加的 Location,记得手动勾选上,然后再次 OK 就完成了。

注意

如果手机没有关闭代理的话,当 Charles 软件关闭的时候,手机访问网络会出现故障