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

版本

  • 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. 服务器填写的就是「得到电脑的本机 IP 地址」
  3. 端口一般情况下填写 8888,除非你修改 Charles 的端口号

进行 「存储」保存后,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 可以使用通配符 *,OK 后,软件会自动勾选刚才 Add 增加的 Location,如果没有自动勾选上,自己手劳累下勾选上,然后再次 OK 就完成了。

我为了简单省事 Host 填写为 *,匹配所有。

至此,当手机访问 HTTPS 请求的时候,在 Charles 也可以看到了。

注意

如果 Charles 软件关闭,但是手机并没有关闭代理,那么手机访问网络会出现故障

知识共享许可协议
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。
随喜
支付宝随喜
微信随喜