代码 Charles 抓 HTTPS 包配置记录:8888 代理与 chls.pro/ssl 证书

2026-09-04 23:18:31

Charles 抓 HTTPS 包配置记录:8888 代理与 chls.pro/ssl 证书

1 Charles 是什么

Charles 是 HTTP/HTTPS 代理服务器和抓包工具,能拦截并展示电脑或手机上经过的网络请求和响应。移动端开发调试中常用它排查接口异常、分析 App 网络行为、做安全测试。官方地址:https://www.charlesproxy.com/,免费版可试用 30 天。

2 抓包原理

Charles 在电脑上开启代理服务,默认监听 8888 端口。手机把网络代理指向该电脑后,请求先到 Charles,再由 Charles 转发到真实服务器;服务端响应也先经过 Charles 再回到手机。

  • HTTP:明文传输,Charles 直接读内容。
  • HTTPS:需要开启 SSL Proxying。Charles 用自己根证书签发的动态证书与手机通信,手机信任后,Charles 可解密并记录密文内容。所以必须安装并信任 Charles 根证书,否则手机会因证书无效而报错。

3 准备工作

3.1 下载安装 Charles

从官网下载对应系统版本,安装完成后首次启动会请求系统代理权限,选择允许。

3.2 确认同一局域网

最关键前提:电脑和手机连同一个 Wi-Fi。否则手机无法访问电脑上的代理地址。

3.3 查看电脑 IP 和代理端口

  • IP:菜单 Help → Local IP Address
  • 端口:Proxy → Proxy Settings,默认 8888

4 手机配置代理

4.1 iOS

  1. 设置 → 无线局域网
  2. 点击当前 Wi-Fi 右侧的 i 图标
  3. 找到 HTTP 代理,选择 手动
  4. 填:
    • 服务器:电脑 IP
    • 端口8888

4.2 Android

  1. 设置 → WLAN
  2. 长按当前 Wi-Fi,选择 修改网络
  3. 展开 高级选项,将代理设为 手动
  4. 填服务器主机名(电脑 IP)和端口 8888

4.3 允许连接

手机设置代理后,Charles 会弹窗询问是否允许该设备连接,点击 Allow

5 安装 SSL 证书(HTTPS 抓包)

不装证书时,HTTPS 请求在 Charles 中会显示为 unknown 或乱码。

5.1 电脑端安装证书

Help → SSL Proxying → Install Charles Root Certificate,按向导安装到 受信任的根证书颁发机构

5.2 手机端下载并安装证书

推荐做法:Charles 菜单 Help → SSL Proxying → Install Charles Root Certificate on a Mobile Device or Remote Browser,按提示操作。手机浏览器打开 chls.pro/ssl 下载证书;打不开时试用备用地址 charlesproxy.com/getssl

iOS:

  1. 下载后进 设置 → 通用 → VPN与设备管理,安装描述文件。
  2. 设置 → 通用 → 关于本机 → 证书信任设置,打开 Charles 证书信任开关。

Android:

  1. 下载后进 设置 → 安全 → 安装证书(或 更多安全设置 → 加密和凭据 → 从存储设备安装)。
  2. 选择 CA 证书用户证书,导入证书文件。
  3. 安装后可在 设置 → 安全 → 受信任的凭据 → 用户 中查看。

5.3 开启 SSL 代理

  1. Proxy → SSL Proxying Settings
  2. 勾选 Enable SSL Proxying
  3. Add,Host 和 Port 分别填 **,表示解密所有 HTTPS 流量;也可以只添加需要抓包的域名。
  4. 或在 Charles 主界面左侧域名上右键 → Enable SSL Proxying

如果 *:* 使某个网站/App 请求异常,可在 Exclude 列表中添加排除项。

6 验证抓包结果

手机打开任意 App 或网页,Charles 应能看到对应请求。若带锁图标的请求仍显示 unknown,说明证书还没装好或没被信任,回到第 5 节逐项检查。

7 进阶功能

7.1 请求过滤

主界面下方 Filter 输入关键词过滤请求;或在 Proxy → Recording Settings 通过 Add/Exclude 精确控制抓取范围。

7.2 Breakpoints

右键请求 → Breakpoints。下次触发会暂停,可修改请求参数或响应数据后再放行,适合测试 App 的异常处理。

7.3 Repeat

右键请求 → Repeat 重发请求,测试接口幂等性或高频请求表现。

7.4 Throttle

Proxy → Throttle Settings 勾选 Enable Throttling,可模拟 2G/3G/4G 等弱网环境。

7.5 Map Remote

Tools → Map Remote,把线上环境请求映射到本地开发服务器,无需发布就可在真实环境验证代码改动。

8 常见问题与排查

Q1:手机配置代理后无法上网

  • 确认电脑和手机连同一 Wi-Fi
  • 确认 Charles 正常运行,端口 8888 未被占用
  • 检查 Windows/macOS 防火墙是否拦截 Charles
  • 确认 Proxy → Proxy Settings 已勾选 Enable transparent HTTP proxying

Q2:HTTPS 请求显示 unknown 或乱码

原因:证书未正确安装,或 SSL 代理未开启。

处理:

  • 确认手机已下载并信任 Charles 证书
  • iOS 必须在 证书信任设置 中手动打开信任
  • 检查 SSL Proxying Settings 已勾选并添加对应域名

Q3:Android 7.0+ 抓不到 App 的 HTTPS 包

Android 7.0 起不再默认信任用户安装的 CA 证书,应用默认只信任系统预置证书。可选方案:

  • Root 后将 Charles 证书导入系统信任区
  • 修改 App 的网络安全配置文件 network_security_config.xml
  • 使用 Android 6.0 及以下版本的模拟器或测试设备

Q4:部分 App 仍然抓不到包

这些 App 可能启用了证书固定(SSL Pinning),会校验服务端证书是否与预置证书一致,拒绝 Charles 的中间人证书。需要配合测试版本,或通过逆向方式绕过。

Q5:手机浏览器打不开 chls.pro/ssl

  • 使用 http://chls.pro/ssl(注意是 http 而不是 https)
  • 访问备用地址 charlesproxy.com/getssl
  • 在 Charles 中 Help → SSL Proxying → Save Charles Root Certificate 导出证书文件,传到手机安装。建议将 pem 和 cer 两种格式都导出,不同手机的识别支持可能不同。

最后

测试涉及用户敏感数据的请求前,先取得授权。调试结束后记得关闭手机代理,避免影响正常上网。

复制全文 生成海报 Charles 抓包 HTTPS SSL证书 代理调试

推荐文章

程序员茄子在线接单