iOS 调试
Charles 安装和配置 HTTPS 证书
Charles 的 HTTPS 抓包要同时处理电脑端代理、移动设备证书安装和系统信任设置。按这条链路逐项排查,通常比反复重装证书更快定位问题。
Charles 是一款常用的 HTTP 代理工具,可以用来抓包、调试网络请求。
1. 安装说明
Charles 可以直接从官网下载。
官网地址: www.charlesproxy.com
2. 配置 Charles
2.1 SSL Proxying Settings
- 找到
Proxy->SSL Proxying Settings - 点击
Add Host填写*(所有主机)Port填写*或443(HTTPS 默认端口)
2.2 Proxy Settings
- 找到
Proxy->Proxy Settings Port设置为8888(默认端口)- 勾选相应的选项(根据需要)
3. 手机配置代理
-
连接 WiFi
- 手机连接与电脑相同的 WiFi
-
配置代理
- 在 WiFi 设置中找到当前连接的网络
- 选择 手动 配置代理
- 服务器填写电脑的 IP 地址(可在电脑终端通过
ifconfig或ipconfig查看) - 端口填写
8888
4. 配置 HTTPS 证书
4.1 安装电脑证书
-
下载证书
- 选择
Help->SSL Proxying->Install Charles Root Certificate
- 选择
-
配置信任
- 打开 钥匙串访问(macOS)
- 找到证书
Charles Proxy CA - 双击证书,展开 信任 设置
- 在所有选项中选择 始终信任
- 关闭窗口,输入管理员密码确认
4.2 安装手机证书
iOS 设备
-
下载证书
- 选择
Help->SSL Proxying->Install Charles Root Certificate on a Mobile Device - 在手机浏览器中输入
chls.pro/ssl下载证书
- 选择
-
安装证书
- 打开 设置 -> 通用 -> 描述文件与设备管理
- 找到 Charles 证书并点击安装
-
信任证书
- 打开 设置 -> 通用 -> 关于手机 -> 证书信任设置
- 找到
Charles Proxy CA并启用 完全信任
Android 设备
-
下载证书
- 在手机浏览器中输入
chls.pro/ssl下载证书
- 在手机浏览器中输入
-
安装证书
- 打开 设置 -> 安全 -> 安装证书 -> CA 证书
- 选择下载的证书文件并安装
-
信任证书
- 部分 Android 版本需要手动配置信任
5. 验证配置
- 确保 Charles 已启动
- 手机浏览器访问任意 HTTPS 网站
- 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>