使用 Charles 对电脑和手机进行抓包

Charles 简介

Charles 是一款 HTTP 代理 / HTTP 监听 / 方向代理服务器软件。开发人员可以使用 Charles 看到计算机和互联网之间的 HTTP 和 HTTPS 信息。包括请求，响应和 HTTP 请求头 (Cookie 和缓存信息).

安装和使用 Charles

点击链接 https://www.charlesproxy.com/download/ 下载对应的版本进行安装
以 macOS 版本为例：

下载 dmg 文件 点击此处可下载 4.5.6 版本

双击打开 dmg 文件，点击 accept 然后把应用文件拖动到 Applications 目录。

随后就可以在启动台打开 Charles。

启动 Charles 后会出现如下弹窗索取权限，点击 Grant Privileges 同意后输入密码同意授权。

随后勾选 Proxy - macOS Proxy 启动系统代理。然后使用浏览器访问百度就可以在左侧看到我们刚才请求百度的 HTTP 请求信息。

安装 SSL 证书

进过以上步骤安装后可以看到百度的请求下面出现 unknown，原因是百度使用的是 HTTPS 使用 SSL 经过加密传输，我们只需安装上 Charles 的证书即可获取到请求信息。
选择 Help - SSL Proxying - Install Charles Root Certificate

点击之后会弹出一个添加证书的弹窗选择添加即可

添加之后我们打开钥匙串访问这个系统软件，在右上方搜索 Charles 就可以找到刚才安装的证书，安装之后是不信任的证书。

双击安装的证书，点开信任一栏，选择始终信任，然后关闭窗口输入密码。如图所示：

配置 SSL 代理

进入 Proxy - SSL Proxying Settings 点击 Add 添加需要监听的域名和端口，支持 * 通配符 SSL 通常是 443 端口。

这里我们添加两个配置，即可应用绝大多数 HTTPS 请求，添加完成之后就可以愉快的抓取 HTTPS 请求了。

*:443

*:*

再次访问百度点开请求路径选择 Contents 一栏就可以请求和响应信息。

抓包 IOS 手机

配置代理

首先确保手机和电脑出于同一网络内，点击 Help - Local IP Address 查看电脑 IP，点击 Proxy - Proxy Settings 查看代理端口默认是 8888。

打开手机进入 设置 - 无线局域网 - 点击已连接上 WI-FI 右侧的感叹号。（确保电脑和手机处于局域网内！）

滑倒最下面点击 配置代理 选择手动，填入 IP 和 端口信息。如下图所示：

随后 Charles 会弹出一个连接请求点击 Allow (如果点击到了 Deny 请重启 Charles)

随后打开手机浏览器访问百度之后会提示 此连接非私人连接 是因为我们手机还未安装 Charles 的证书。

IOS 安装 Charles 证书

打开 Charles 选择 Help - SSL - Install Charles Root Certificate on a Mobile Device or Remote Browser

使用 Safari 浏览器打开 chls.pro/ssl 点击允许安装描述文件。确保设备处于局域网下并配置代理正确。

随后手机进入 设置 - 通用 - 描述文件 可以看到多了一个 Charles Proxy CA 的描述文件，点击该描述文件，点击右上角的安装。

安装完成后进入 设置 - 通用 - 关于本机 - 证书信任设置 (最下面) 点击信任 Charles Proxy CA 的证书。

至此手机的证书设置就完成了。

抓包微信小程序

如果你只需要抓取手机上的请求可以暂时关闭 Proxy - macOS Proxy (快捷键：Shift + command + P) 减少电脑请求对手机抓包的干扰。

打开一个小程序（本文使用微信指数小程序）
操作小程序发送一个请求

打开 Charles 查看请求信息即可看到响应的 json 信息