避开这3个坑!用Charles抓雷电模拟器HTTPS包的正确姿势

张开发
2026/4/6 21:32:51 15 分钟阅读

分享文章

避开这3个坑!用Charles抓雷电模拟器HTTPS包的正确姿势
避开这3个坑用Charles抓雷电模拟器HTTPS包的正确姿势最近在调试一个混合开发的应用时遇到了一个棘手的问题团队提供的测试包只有Android版本而我的主力机是iPhone。这时候雷电模拟器就成了救命稻草但实际抓包过程中却踩了不少坑。特别是当需要分析HTTPS流量时光是证书配置就让我折腾了大半天。本文将分享三个最容易出错的环节以及如何一步到位解决问题。记得第一次尝试时我按照网上的教程操作结果Charles里始终看不到HTTPS请求。后来才发现是模拟器的Root权限没开导致证书无法正确安装到系统目录。类似这样的细节问题往往就是抓包失败的关键原因。1. 环境准备阶段的常见陷阱1.1 模拟器版本与系统权限配置很多教程会告诉你安装最新版雷电模拟器但很少有人强调版本兼容性问题。我测试发现9.0.66版本与Charles 4.6.4配合最稳定。安装后需要立即检查两个关键设置性能设置→ 磁盘共享必须改为System.vmdk可写入其他设置→ Root权限务必开启这两个选项默认都是关闭状态如果遗漏后续证书安装必定失败。有次我在客户现场演示时就因为忘记开启Root权限当场卡壳了15分钟。1.2 Windows系统环境注意事项在Windows 10/11上运行时需要特别注意关闭所有杀毒软件的实时防护特别是证书安装阶段以管理员身份运行Charles确保模拟器和Charles不在同一个虚拟桌面运行# 检查Charles进程是否以管理员运行 Get-Process charles | Select-Object ProcessName, StartTime, Path2. 证书安装的三大雷区2.1 证书导出格式选择在Charles中导出证书时新手最容易犯的错误是错误直接保存为.pem格式正确必须选择.cer格式虽然理论上.pem也能用但雷电模拟器对.cer格式的兼容性更好。导出路径建议直接放在桌面避免中文或特殊字符路径。2.2 模拟器端证书安装将证书拖入模拟器后会遇到几个典型问题锁屏密码弹窗这是Android的安全机制必须设置证书命名冲突建议使用charles_[日期]的格式安装后无反应检查是否开启了允许安装未知来源应用提示安装完成后到设置→安全→信任的凭证中查看应该能在用户分类下看到Charles证书2.3 证书复制到系统目录这是最关键的步骤也是失败率最高的环节。正确的操作顺序使用模拟器内置的文件管理器导航到/data/misc/user/0/cacerts-added长按证书文件选择复制转到/system/etc/security/cacerts粘贴常见错误包括直接拖拽文件无效忘记挂载系统目录为可写文件权限设置错误应为644# 通过adb验证证书权限 adb shell ls -l /system/etc/security/cacerts | grep charles3. 网络配置与验证技巧3.1 代理设置的特殊性雷电模拟器的网络配置有几个易忽略点配置项常规安卓设备雷电模拟器代理类型手动必须选无端口号任意需与Charles一致绕过列表可空必须添加10.0.2.*实测发现如果在模拟器设置中直接配置代理反而会导致连接失败。正确做法是在Wi-Fi设置中长按当前网络→修改网络→显示高级选项→代理选择无。3.2 抓包验证的正确方式很多教程建议用浏览器测试但这可能产生误导。我推荐使用以下验证流程先在Charles中清空当前会话打开模拟器中的目标应用执行一个明确的HTTPS请求如登录操作检查Charles的SSL代理标签页如果看到锁状图标且能展开请求内容说明配置成功。如果出现以下情况黄色警告三角证书未正确安装红色禁止图标SSL握手失败空白无记录代理设置有问题4. 高阶调试与问题排查4.1 Charles的SSL代理设置在Charles的SSL Proxy Settings中需要特别注意Location部分添加*:443勾选Enable SSL Proxying排除列表中添加模拟器的本地地址如10.0.2.15常见错误配置只添加了域名没加端口包含/exclude列表逻辑冲突忘记重启Charles生效4.2 使用ADB进行深度排查当常规方法失效时ADB命令能提供更多信息# 查看系统证书列表 adb shell ls /system/etc/security/cacerts # 检查证书哈希值 adb shell openssl x509 -inform DER -in /system/etc/security/cacerts/xxxx.0 -noout -subject_hash # 监控SSL握手过程 adb logcat | grep -i ssl4.3 流量镜像替代方案如果仍然无法抓包可以考虑使用模拟器的流量镜像功能配置透明代理需修改hosts文件临时改用HTTP协议调试最后分享一个实用技巧在雷电模拟器的设置→关于平板电脑中连续点击版本号7次可以开启开发者选项里面有个强制允许HTTP流量的开关在测试环境下可以临时开启。

更多文章