Charles 安装和配置 HTTPS 证书 封面
iOS 调试

Charles 安装和配置 HTTPS 证书

Charles 的 HTTPS 抓包要同时处理电脑端代理、移动设备证书安装和系统信任设置。按这条链路逐项排查,通常比反复重装证书更快定位问题。

Charles 是一款常用的 HTTP 代理工具,可以用来抓包、调试网络请求。


1. 安装说明

Charles 可以直接从官网下载。

官网地址: www.charlesproxy.com


2. 配置 Charles

2.1 SSL Proxying Settings

  1. 找到 Proxy -> SSL Proxying Settings
  2. 点击 Add
  3. Host 填写 *(所有主机)
  4. Port 填写 * 或 443(HTTPS 默认端口)

2.2 Proxy Settings

  1. 找到 Proxy -> Proxy Settings
  2. Port 设置为 8888(默认端口)
  3. 勾选相应的选项(根据需要)

3. 手机配置代理

  1. 连接 WiFi

    • 手机连接与电脑相同的 WiFi
  2. 配置代理

    • 在 WiFi 设置中找到当前连接的网络
    • 选择 手动 配置代理
    • 服务器填写电脑的 IP 地址(可在电脑终端通过 ifconfig 或 ipconfig 查看)
    • 端口填写 8888

4. 配置 HTTPS 证书

4.1 安装电脑证书

  1. 下载证书

    • 选择 Help -> SSL Proxying -> Install Charles Root Certificate
  2. 配置信任

    • 打开 钥匙串访问(macOS)
    • 找到证书 Charles Proxy CA
    • 双击证书,展开 信任 设置
    • 在所有选项中选择 始终信任
    • 关闭窗口,输入管理员密码确认

4.2 安装手机证书

iOS 设备

  1. 下载证书

    • 选择 Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device
    • 在手机浏览器中输入 chls.pro/ssl 下载证书
  2. 安装证书

    • 打开 设置 -> 通用 -> 描述文件与设备管理
    • 找到 Charles 证书并点击安装
  3. 信任证书

    • 打开 设置 -> 通用 -> 关于手机 -> 证书信任设置
    • 找到 Charles Proxy CA 并启用 完全信任

Android 设备

  1. 下载证书

    • 在手机浏览器中输入 chls.pro/ssl 下载证书
  2. 安装证书

    • 打开 设置 -> 安全 -> 安装证书 -> CA 证书
    • 选择下载的证书文件并安装
  3. 信任证书

    • 部分 Android 版本需要手动配置信任

5. 验证配置

  1. 确保 Charles 已启动
  2. 手机浏览器访问任意 HTTPS 网站
  3. Charles 中应能看到明文的 HTTPS 请求和响应

常见问题

Q1: 手机无法连接 Charles

解决方案:

  • 确认手机和电脑在同一 WiFi
  • 检查防火墙是否允许 8888 端口
  • 确认代理地址和端口配置正确

Q2: HTTPS 请求显示乱码

解决方案:

  • 确认证书已正确安装并信任
  • 检查 SSL Proxying Settings 配置是否正确
  • 重启 Charles 和手机

Q3: Android 7.0+ 无法抓包

解决方案:

  • Android 7.0+ 默认不信任用户安装的 CA 证书
  • 需要在应用中配置 network_security_config.xml
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        </trust-anchors>
    </base-config>
</network-security-config>

参考资料


来源