charles配置https证书与抓包设置教程
Charles是一款支持HTTP的专业网络抓包软件,可用于抓包和分析网络流量。它更贴近日常 macOS / Windows / Linux 使用场景,处理高频操作时整体会更顺手一些。
详解Windows下Charles HTTPS抓包配置:包括根证书安装信任、SSL Proxying主机设置、浏览器验证及移动端差异处理,确保开发者安全高效地调试加密流量。
在使用 Charles 进行网络调试时,HTTP 请求可以直接查看明文,但 HTTPS 流量经过加密,默认只能看到 CONNECT 方法或乱码。要查看 HTTPS 的请求详情,需要让客户端(如浏览器)信任 Charles 生成的根证书,并在 Charles 中明确指定需要解密的主机。本教程以 Windows 桌面版 Charles 和浏览器流量为例,梳理证书安装、范围设置和结果验证的标准流程。
请注意,HTTPS 解密涉及敏感数据暴露风险,请仅在自己拥有或明确获准测试的服务上使用,切勿将证书安装到不受控设备或生产环境。
概述
Charles 的工作界面主要分为会话列表、结构视图和内容查看区。配置 HTTPS 抓包的核心在于两个环节:一是建立信任链,即让操作系统或浏览器认可 Charles 的“中间人”身份;二是划定解密范围,通过 SSL Proxying 设置告诉 Charles 哪些域名的流量需要被解密。

Charles主界面,显示会话列表、结构视图和内容查看区
1. 确认 Charles 正在接收浏览器流量
在配置证书之前,首先要确保 Charles 能够正常捕获基础的 HTTP 流量。启动 Charles 后,观察主窗口的会话列表区域。
打开浏览器访问一个普通的 HTTP 网页(或使用未强制 HTTPS 的测试地址),如果配置正确,会话列表中应实时出现对应的主机和请求记录。如果列表为空,请检查以下两点:
- Charles 是否启用了系统代理:查看菜单栏 【Proxy】 > 【Windows Proxy】 是否被勾选。
- 浏览器是否使用了独立代理:部分浏览器可能绕过系统代理,需确保其网络设置指向 Charles 监听的本地端口(默认为 8888,可在 【Proxy】 > 【Proxy Settings】 中查看)。
只有当基础流量能够进入 Charles,后续的 HTTPS 解密配置才有意义。
2. 从 Charles 获取根证书
Charles 为每次安装生成独立的根证书。在顶部菜单中点击 【Help】 > 【SSL Proxying】,你会看到两个主要选项:
- Install Charles Root Certificate:直接调用系统的证书导入向导,适合大多数 Windows 用户。
- Save Charles Root Certificate:将证书保存为
.cer文件。如果你需要手动管理证书存储,或遇到自动导入失败的情况,可以选择此项。

Help菜单下的SSL Proxying子菜单,显示安装和保存证书选项
需要注意的是,不要使用他人导出的证书文件。每台电脑上的 Charles 实例生成的密钥对都是唯一的,混用证书会导致信任失败。
3. 将证书导入 Windows 受信任根证书存储
如果选择了保存 .cer 文件,双击该文件打开证书导入向导。在导入过程中,关键步骤是选择存储位置:
- 选择 【将所有的证书放入下列存储】。
- 点击浏览,在列表中选择 【受信任的根证书颁发机构】 (Trusted Root Certification Authorities)。
务必不要将其放入“个人”或“中间证书颁发机构”存储中,否则浏览器仍会提示证书不受信任。完成导入后,系统可能会弹出安全警告,确认来源为当前 Charles 实例后即可继续。
对于 Firefox 等使用独立证书存储的浏览器,需要在浏览器内部的设置中找到“证书”或“隐私与安全”选项,单独导入该 .cer 文件并勾选“信任此标识符用于识别网站”。
4. 在 SSL Proxying Settings 中添加目标主机
证书信任只是第一步,Charles 默认不会解密所有 HTTPS 流量以保护性能和隐私。你需要明确指定哪些域名需要被解密。
打开 【Proxy】 > 【SSL Proxying Settings】,勾选 Enable SSL Proxying。点击 【Add】 按钮添加规则:
- Host:填写需要抓包的域名,例如
api.example.com。如果需要匹配子域名,可以使用通配符*.example.com。 - Port:通常为
443。

SSL Proxying Settings窗口,展示添加主机和端口的界面
建议避免直接使用 * 匹配所有主机,这会扩大敏感数据暴露范围并增加排查难度。仅在隔离的测试环境中,且明确理解风险时,才考虑临时使用宽泛的规则,并在测试结束后立即删除。
添加规则后,已经建立的连接可能不会立即生效。建议关闭目标网页标签,清理浏览器缓存或重启 Charles,然后重新发起请求,以确保新配置被应用。
5. 验证 HTTPS 请求是否能够查看
重新访问目标 HTTPS 页面,回到 Charles 界面。在左侧结构视图中找到刚才配置的主机,展开具体的请求条目。
如果配置成功,你将能够在右侧的内容查看区看到清晰的请求方法、URL、Header 以及响应正文(JSON、HTML 等)。如果仍然显示为加密内容或 CONNECT 方法,请依次检查:
- 证书是否已正确导入到“受信任的根证书颁发机构”。
- 域名是否准确添加到了 SSL Proxying 列表中。
- 浏览器是否正在通过 Charles 代理发送请求。

Charles中查看解密后的HTTPS请求详情,显示JSON响应体
若浏览器提示“连接不安全”或证书名称不匹配,请立即停止抓包,检查证书安装范围是否正确,切勿为了消除警告而关闭浏览器的安全校验功能。
6. 处理移动端和应用流量的差异
手机或模拟器抓包除了上述证书步骤外,还需在设备上设置 HTTP 代理,指向运行 Charles 的电脑 IP 地址。移动设备通常可以通过访问 chls.pro/ssl 下载并安装证书。
需要注意的是,Android 7.0 及以上版本默认不信任用户安装的 CA 证书,除非应用明确配置了 networkSecurityConfig。此外,许多应用采用证书绑定(Certificate Pinning)技术,即使系统信任了 Charles 证书,应用也会拒绝连接。针对此类情况,请勿尝试破解生产应用,仅应在获得授权的测试构建中,按项目规定的调试方式处理。
7. 结束抓包并清理证书
测试完成后,为了保障日常上网安全,请执行以下清理操作:
- 在 【Proxy】 菜单中取消勾选 【Windows Proxy】,或关闭 SSL Proxying。
- 从 Windows 证书管理器中删除之前安装的 Charles 根证书。
- 恢复浏览器或设备的原始代理设置。
如果在测试过程中保存了包含账号、Token、Cookie 或个人信息的会话文件(.chls),请在分享前仔细审查并脱敏,避免敏感数据泄露。

7. 结束抓包并清理证书










































