文档中心
Charles鎶撳寘HTTPS娴侀噺锛熻瑙h瘉涔﹂厤缃笌瀹夊叏椋庨櫓闃茶寖
时间 : 2025-09-27 15:43:07浏览量 : 2

****
如果你用过Charles抓包工具,一定遇到过HTTPS流量显示为乱码的情况。这是因为HTTPS会对数据进行加密,而Charles需要通过“中间人”方式解密流量。这背后涉及到一个关键角色:证书。今天我们就用“修水管”和“钥匙”的比喻,彻底讲清楚Charles处理HTTPS流量的原理、证书配置步骤,以及你可能忽略的安全风险。
一、HTTPS为什么能防偷窥?先理解“加密水管”
想象你家的水管(网络传输)里流着自来水(数据)。如果水管是透明的(HTTP),任何人趴在水管上都能看到水流内容;而HTTPS相当于给水管套了一层不透明保护套(SSL/TLS加密),只有发送方和接收方有“钥匙”(密钥)能解密内容。
问题来了:Charles如何看到加密内容?
答案:它把自己伪装成“物业维修工”(中间人),在你和服务器之间插了一脚:
1. 你请求访问淘宝 → Charles拦截请求,假装自己是淘宝服务器 → 给你发一个Charles自己的证书
2. 你的手机/电脑如果信任了这个证书 → 就会用Charles提供的“假钥匙”加密数据
3. Charles用这把钥匙解密你的数据,记录后再用淘宝的真钥匙重新加密转发
(示意图:用户 ? [Charles] ? 真实服务器)
二、实操:如何让手机/电脑信任Charles的证书?
以安卓手机为例,分三步:
步骤1:在电脑端Charles生成证书
打开Charles → Help → SSL Proxying → Save Charles Root Certificate
这时会得到一个`.pem`文件(相当于Charles的“物业工作证”)。
步骤2:把证书安装到手机
- 安卓:将`.pem`文件发到手机 → 进入设置 → 安全 → 加密与凭据 → 安装证书
- iOS:用Safari访问`chls.pro/ssl`下载描述文件 → 在设置中信任证书
步骤3:设置SSL代理
在Charles中右键目标域名 → Enable SSL Proxying
现在再访问该域名的HTTPS请求,就能看到明文数据了!
> 常见翻车点:
> - iOS安装证书后必须手动开启信任(设置→通用→关于本机→证书信任设置)
> - Android 7+可能需修改App的网络安全配置(因为系统默认不信任用户安装的证书)
三、安全风险:你以为的“安全抓包”可能被黑客利用
很多人在测试环境装完证书就忘了卸载,这相当于把家门钥匙插在锁上。真实案例:
案例1:恶意App伪造银行界面
某金融公司测试人员手机上安装了Charles证书但未删除。后来他下载了一个恶意App,该App悄悄使用Charles的证书实施中间人攻击,截获了他的银行登录信息。
案例2:公共Wi-Fi钓鱼攻击
黑客在咖啡厅搭建同名Wi-Fi,诱导用户连接后强制安装虚假证书(比如伪装成“网络验证需要”)。如果用户此前已信任过类似CA证书,就可能中招。
四、防护建议:“用完即焚”原则
1. 测试结束后立刻删除设备上的调试证书
(就像用完U盾要拔掉)
2. 生产环境禁止使用抓包工具
通过代码混淆(如ProGuard)、Certificate Pinning(固定证书)等技术防止被抓包。
3. 警惕异常弹窗提示
如果突然出现“是否信任新证书”提示且非你自己操作,立即拒绝!
Charles调试HTTPS就像医生做手术——必要时要切开组织(解密流量),但术后必须缝合伤口(移除证书)。理解其原理后不仅能高效抓包排查问题,更能主动规避潜在的数据泄露风险。
TAG:charles https 证书,charles安装证书后请求https,charles证书安卓,charles证书后缀