作为开发者或测试工程师,抓包调试是日常工作中不可或缺的一环…

【重新整理】本文以 Charles 为例,介绍强大的代理工具,如何帮助我们轻松查看、分析和修改网络请求。


一、Charles

背景:用 Charles 调试 iOS 测试机,并详细介绍 HTTPHTTPS 两种协议的配置方法。

1.准备工作

开始前,请确保以下两点:

  • 电脑(macOS 或 Windows)已安装并运行 Charles
  • iOS 设备(iPhone 或 iPad)和电脑连接在 同一个 Wi-Fi 网络

第一步:电脑端配置 Charles

首先,需要 配置 Charles 允许外部设备连接

  • i. 确认端口号: 打开 Charles,点击菜单栏的 Proxy > Proxy Settings…。在 Proxies 标签下,确认 HTTP Proxy Port8888。这是 Charles 默认的代理端口,你可以根据需要修改。
  • ii. 获取本机 IP: 点击菜单栏的 Help > Local IP Addresses…。你会看到一个弹窗,其中列出了你电脑在当前网络中的所有 IP 地址。找到你的 Wi-Fi IP 地址,例如 192.168.1.100。稍后在手机上设置代理时会用到这个 IP。
  • iii. 允许外部连接: 当你的 iOS 设备第一次尝试通过 Charles 代理连接时,Charles 会弹出防火墙提示。请务必点击 Allow 允许连接,否则手机无法通过代理上网。

第二步:iOS 测试机配置

接下来,需要 在iPhone或iPad上设置代理

2. HTTP 协议配置

对于 HTTP 请求,配置非常简单,只需设置代理即可。

  • i. 打开 iPhone 的 设置 > 无线局域网(Wi-Fi)
  • ii. 点击你当前连接的 Wi-Fi 名称旁边的 蓝色 “i” 图标
  • iii. 滚动到底部,找到 “HTTP 代理” 选项。
  • iv. 选择 “手动”,然后在 “服务器” 栏填入你电脑的 IP 地址,在 “端口” 栏填入 8888

完成以上设置后,你的 iPhone 所有 HTTP 请求都会通过 Charles,可以在 Charles 界面看到请求的详细信息。

3. HTTPS 协议配置

因为加密机制,HTTPS协议需要 额外安装并信任 Charles 的 SSL 证书 才能抓包。

  • i.保持代理设置: 请确保你已经完成了上述 HTTP 代理的配置。

  • ii. 电脑安装证书Help -> SSL Proxying -> Install Charles Root Certificate

  • iii. 下载并安装证书: 在 iPhone 上,打开 Safari 浏览器,输入网址 chls.pro/ssl 并回车。Safari 会提示你下载一个描述文件,点击 “允许”

    (配图:手机上 Safari 弹窗,提示下载描述文件)

  • iv. 安装描述文件: 下载完成后,进入 iPhone 的 设置 > 通用 > VPN 与设备管理。你会看到一个已下载的描述文件,名称为 “Charles Proxy SSL Proxying”。点击它,然后点击右上角的 “安装”

  • v. 信任证书: 证书安装后还不能立即使用。回到 设置 > 通用 > 关于本机,滚动到最底部,点击 “证书信任设置”。在列表中找到 “Charles Proxy CA”,打开其旁边的开关,系统会弹窗提示,点击 “继续” 即可。

    (配图:证书信任设置界面,Charles Proxy 开关已打开)

至此,所有配置工作都已完成。你的 iOS 设备现在可以正常通过 Charles 代理抓取和分析 HTTPS 请求了。


常见问题

  • 配置后手机无法上网?

    • 检查你的电脑和手机是否在同一个 Wi-Fi 网络下。
    • 检查 Charles 客户端是否正在运行,如果 Charles 关闭,代理将失效。
    • 确保电脑防火墙没有阻止 Charles 的连接。
  • 部分应用无法抓取 HTTPS 请求?

    • 一些应用为了提高安全性,会使用 SSL Pinning 技术。这意味着应用会自己验证服务器证书,忽略系统代理设置。遇到这种情况,你需要使用其他专门的工具或方法来绕过 SSL Pinning。

参考


最后, 希望大家早日实现:成为编程高手的伟大梦想!
欢迎交流~

微信公众号

本文版权归原作者曜灵所有!未经允许,严禁转载!对非法转载者, 原作者保留采用法律手段追究的权利!
若需转载,请联系微信公众号:连先生有猫病,可获取作者联系方式!