文档中心
Charles鎶撳寘HTTPS鎻愮ず璇佷功涓嶈淇′换锛?鍒嗛挓鏁欎綘褰诲簳瑙e喅锛?txt
时间 : 2025-09-27 15:43:07浏览量 : 2

作为一名网络安全工程师,我经常需要使用Charles等抓包工具来分析HTTPS流量。但很多新手都会遇到一个令人头疼的问题 - Charles的HTTPS证书不被信任。今天我就用最通俗易懂的方式,带你彻底搞懂这个问题的原理和解决方案。
一、为什么Charles的HTTPS证书会不被信任?
要理解这个问题,我们得先知道HTTPS是如何保证安全的。简单来说:
1. 正常HTTPS流程:当你访问https://www.baidu.com时,百度服务器会出示一个由DigiCert等权威CA颁发的证书。你的电脑/手机内置了这些CA的根证书,所以会自动信任。
2. Charles中间人原理:Charles要解密HTTPS流量,就必须"插入"到你和服务器之间:
- 它先用自己的CA证书签发一个假的百度证书给你的设备
- 同时原样转发请求给百度服务器
- 这样它就能看到明文数据了
3. 问题根源:你的设备没有安装并信任Charles的根证书,所以会警告"此证书不被信任"。就像陌生人给你一张自制身份证,你当然不敢信!
二、不同设备的详细解决方案
▍Windows电脑
1. 安装Charles根证书:
- 打开Charles → Help → SSL Proxying → Install Charles Root Certificate
- 在弹出的证书窗口中点击"安装证书"
2. 关键步骤!将证书放入"受信任的根证书颁发机构":
```
存储位置选择"本地计算机"
→ 选择"将所有证书放入下列存储"
→ 浏览选择"受信任的根证书颁发机构"
3. 验证是否成功:
- Win+R运行`certmgr.msc`
- 在"受信任的根证书颁发机构"中应该能看到Charles的证书
*常见踩坑*:很多同学只在"当前用户"下安装,没选"本地计算机",导致部分应用仍不信任。
▍Mac电脑
1. 通过钥匙串安装:
```bash
Charles → Help → SSL Proxying → Install Charles Root Certificate
2. 手动设置信任:
- 打开钥匙串访问 → 找到`Charles Proxy CA`
- 双击打开 → 展开"信任"选项
- "使用此证书时"选择"始终信任"
3. 可能需要终端命令刷新:
sudo security authorizationdb write system.login.console < /dev/null
▍Android手机
1. 下载charlesproxy.com/getssl/获取.pem文件
2. 设置→安全→加密与凭据→安装证书→CA证书
3. 特别注意:
- Android 7+需要额外配置Network Security Config
- 某些厂商ROM(如小米)要在"隐私保护→特殊权限设置→安装根证书"
▍iPhone手机
1. Safari访问chls.pro/ssl下载描述文件
2. 设置→已下载描述文件→安装
3. 关键步骤!手动开启完全信任:
设置→通用→关于本机→证书信任设置
→ 启用Charles Proxy CA的完全信任
三、进阶排查技巧(当上述方法失效时)
如果按照上面操作还是报错,可能是这些原因:
1. 系统时间不正确
- HTTPS严格校验时间,如果设备时间与真实时间偏差过大就会失败
2. 杀毒软件干扰
案例:某次火绒安全自动把Charles证书记为恶意软件删除
3. 特殊应用的Certificate Pinning
比如微信、支付宝等APP会硬编码只接受特定CA的证书
4. 解决方案:对于Certificate Pinning的应用可以尝试:
```bash
使用objection框架绕过:objection --gadget com.example.app explore -s "android sslpinning disable"
```
四、安全提醒(重要!)
虽然解决了抓包问题,但必须注意:
1?? Charles根证书记得定期删除(尤其公用电脑)
certmgr.msc → 找到Charles Proxy CA → 右键删除
2?? 不要在非调试环境长期保留中间人CA
3?? https://badssl.com可以用来测试配置是否成功
五、流程图
开始
│
├─ Windows解决方案
│ ├─ certmgr.msc导入
│ └─ "本地计算机"+受信根目录
├─ Mac解决方案
│ ├─ Keychain Access修改信任
│ └─ sudo命令刷新权限
├─ Android解决方案
│ ├─ Network Security Config配置
│ └─ MIUI等ROM特殊处理
└─ iOS解决方案
├─ chls.pro/ssl下载
└─ "完全信任"手动开启
检查时间/杀软/pinning问题 ← [如仍失败]
希望这篇结合实战经验的指南能帮你彻底解决Charles抓包的SSL问题!如果有其他异常情况,欢迎在评论区交流讨论。
TAG:charles https 证书 不被信任,charles安装证书后unknown,charles证书下载不了,手机charles证书无法读取安装