文档中心
Charles鎶撳寘瀹夊崜HTTPS鏁版嵁锛烻SL璇佷功瀹夎鍏ㄦ敾鐣?txt
时间 : 2025-09-27 15:43:09浏览量 : 2

作为一名网络安全从业者,我经常需要分析移动应用的网络通信行为。Charles作为一款强大的抓包工具,在分析HTTP流量时表现出色,但当遇到HTTPS加密流量时就会"抓瞎"。今天我就用最通俗的语言,手把手教你如何在安卓设备上安装Charles的SSL证书,实现HTTPS流量的解密和查看。
一、为什么需要安装Charles SSL证书?
HTTPS协议就像给网络通信加了一把锁,确保传输过程中的数据安全。当我们用Charles抓包时,默认只能看到一堆加密的乱码。安装Charles的SSL证书相当于配了一把"万能钥匙",让Charles能够解密这些HTTPS流量。
举个现实例子:你想分析某购物APP的商品价格接口,发现所有请求都是https://api.shop.com/price这样的HTTPS链接。不装证书的话,在Charles里你只能看到连接建立的信息,却看不到具体的商品ID和价格数据。
二、准备工作清单
在开始前请确保:
1. 电脑和手机在同一WiFi网络(就像你们都在公司或家里的同一个网络下)
2. 电脑上已安装最新版Charles(目前最新是v4.6)
3. 安卓手机系统版本在7.0以上(设置→关于手机里可查看)
专业提示:安卓7.0开始引入了"网络安全配置",改变了证书信任方式,这也是为什么很多教程对新型号手机失效的原因。
三、详细操作步骤(配图版)
步骤1:配置Charles代理
1. 打开Charles → Proxy → Proxy Settings
2. 记下端口号(默认8888),就像记住你家门牌号一样重要
3. 查看电脑IP地址(Mac在系统偏好设置→网络;Windows命令行输入ipconfig)
步骤2:手机连接Charles代理
1. 长按已连接的WiFi → 修改网络 → 显示高级选项
2. 代理选择"手动"
3. 主机名填电脑IP,端口填8888
测试小技巧:此时打开手机浏览器访问http://chls.pro/ssl会下载证书。如果失败说明代理设置有问题。
步骤3:安装CA证书(关键步骤!)
对于Android 7-10:
1. 下载好证书后进入设置 → 安全 → 加密与凭据
2. "从存储设备安装"选择刚才下载的charles-proxy-ssl-proxying-certificate.pem文件
3. 必须给证书起名为"Charles"(否则后续可能不识别)
对于Android11+的特殊处理:
新版本增加了限制,需要额外操作:
```
// Charles CA证书配置示例
这相当于告诉系统:"除了信任官方认证机构外,也请信任我这个叫Charles的证件"
步骤4:SSL代理设置
回到Charles:
1. Proxy → SSL Proxying Settings
2. Enable SSL Proxying
3. Add要监听的域名(如*.taobao.com)或端口(常用443)
专业建议:不要勾选"Enable SSL Proxying on all hosts",这就像把万能钥匙到处用很不安全。
四、常见问题排查手册
问题1:"您的连接不是私密连接"警告
- 原因:系统仍不信任你的证书
- 解决:检查是否将证书安装在"系统凭据"而非"用户凭据"
问题2:能看到HTTP请求但HTTPS都是unknown
- 原因:SSL代理未正确配置
- 解决:
1) Confirm手机上确实安装了CA证书
2) Charles中正确添加了目标域名到SSL列表
3) AndroidManifest.xml中配置了networkSecurityConfig(针对APP开发场景)
问题3:某些APP仍然无法解密
- 案例:微信、支付宝等金融类APP
- 原因:它们启用了"证书固定"(Certificate Pinning)
- 进阶方案:
使用Frida等工具绕过pin验证:
```javascript
// Frida脚本示例绕过SSL Pinning
Java.perform(function(){
var Certificate = Java.use("java.security.cert.Certificate");
Certificate.equals.implementation = function(obj){
return true;
}
});
五、安全注意事项
虽然抓包很有用但要牢记:
1?? 仅用于合法用途 - 《网络安全法》明确规定未经授权拦截通信可能违法
2?? 及时删除测试证书 - Charles的CA证书相当于master key,测试完应立即移除
3?? 敏感信息处理 - 抓包可能暴露密码、token等数据,建议在测试环境使用
企业级建议:生产环境应使用Burp Suite Enterprise等专业方案而非个人版工具。
[扩展知识] HTTPS中间人攻击防御机制
现代安卓系统通过多种方式防御此类中间人攻击:
1. Certificate Transparency - CA机构必须公开记录颁发的每个证书
2. Expect-CT头检测 - Chrome会检查网站是否注册了CT日志
3. HTTP公钥固定(HPKP) - (注:已被淘汰但仍有遗留实现)
理解这些原理能帮助你更深入地掌握移动安全测试的本质。
TAG:charles ssl 安卓证书,android ssl证书,charles ssl ca certificate installatio,charles android证书,charles手机安装证书也无法抓取https