Charles SSL证书配置指南
Charles会为访问的网站生成专属证书,并使用Charles根证书进行签名(该根证书自3.10版本起会为每个Charles安装实例单独生成)。当浏览器或其他应用程序接收到该证书时,由于Charles根证书不在您的受信任根证书列表中,系统会显示安全警告。详见SSL代理说明。
您可以选择在访问每个网站时永久信任其证书(此时无需信任Charles根证书)。若希望自动信任所有由Charles颁发的证书,请按以下指引操作。
以下是为不同浏览器/应用程序添加Charles根证书信任的配置指南,配置后将不再显示证书警告。
注意:Charles根证书机制在3.10版本后有所变更,若您曾为旧版本配置过信任,需重新操作。
Windows/Internet Explorer
1. 在Charles中进入Help菜单,选择"SSL Proxying > Install Charles Root Certificate"
2. 系统将弹出CA根证书不受信任的警告窗口
3. 点击"Install Certificate"启动证书导入向导
4. 必须将证书导入"受信任的根证书颁发机构"存储区,请手动覆盖自动选择的存储位置
5. 完成向导后即安装成功,可能需要重启IE生效
Mozilla Firefox
1. 首先确保Firefox已通过Charles代理(能在Charles中看到浏览记录)
2. 访问 https://chls.pro/ssl
3. 在证书导入对话框中勾选"信任此CA识别网站"选项并完成导入
macOS
1. 在Charles中进入Help菜单,选择"SSL Proxying > Install Charles Root Certificate"
2. 钥匙串访问工具将自动打开
3. 找到"Charles Proxy..."条目,双击查看详情
4. 展开"信任"区块,将"使用此证书时"选项从"使用系统默认"改为"始终信任"
5. 关闭窗口时需输入管理员密码更新系统信任设置
6. 可能需要重启Safari生效
iOS设备
1. 在设置 > Wi-Fi中配置设备使用Charles作为HTTP代理
2. 用Safari访问 https://chls.pro/ssl
安装SSL证书
3. iOS 10.3+用户需额外进入 设置 > 通用 > 关于 > 证书信任设置,启用Charles证书的完全信任
4. 现在可通过Charles代理访问SSL网站
注:3.11.4版本起支持App Transport Security (ATS)
iOS模拟器
1. 退出当前模拟器
2. 在Charles的Help菜单中选择"SSL Proxying > Install Charles Root Certificate in iOS Simulators"
3. 该操作会为所有模拟器安装根证书
4. 启动模拟器后即可通过Charles代理访问SSL网站
tvOS
1. 使用App Store中的Apple Configurator 2创建配置文件:
- 添加全局HTTP代理有效载荷(手动类型,填写桌面Charles代理地址)
- 通过Help > SSL Proxying > Save Charles Root Certificate导出.cer格式证书
- 在Configurator中添加证书有效载荷
2. 将配置文件部署到Apple TV
3. 进入 设置 > 通用 > 关于 > 证书 启用Charles证书信任
Android
自Android N起,需修改应用配置才能信任Charles SSL代理证书(仅限您控制的应用):
1. 在应用中添加res/xml/network_security_config.xml:
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- 仅调试版本信任用户安装的CA证书 -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
2. 在AndroidManifest.xml中引用该配置:
<application android:networkSecurityConfig="@xml/network_security_config">
Google Chrome
Windows用户专属指南(macOS请参照前文):
1. 通过Help > SSL Proxying > Save Charles Root Certificate导出二进制证书(.cer)
2. 在Chrome设置 > 高级 > 管理证书中导入到"受信任的根证书颁发机构"
3. 导入完成后可删除证书文件
Java应用
将Charles根证书添加到Java信任库(Java升级后需重复操作):
1. 导出Base64编码证书(.pem)
2. 定位$JAVA_HOME/jre/lib/security/cacerts文件
3. 执行命令(需管理员权限):
sudo keytool -import -alias charles -file 证书路径 -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
4. 浏览器Java插件需单独配置:/Library/Internet Plug-Ins/JavaAppletPlugin.plugin下的cacerts文件
Python
解决requests模块的SSL验证错误:
1. 通过Help菜单导出.pem格式证书
2. 配置Session:
from requests import Session
session = Session()
session.verify = "证书路径.pem"