Charles proxy配置后移动端app内容不显示问题咨询
Charles代理移动端请求无返回排查方案
1. 移动端证书权限配置遗漏
- 安卓场景:安卓7.0及以上系统默认仅信任系统级根证书,用户手动安装的Charles证书不在信任列表范围内。若测试App的
targetSdkVersion≥24,且未在networkSecurityConfig配置中明确允许信任用户证书,App会直接拒绝Charles签发的代理证书,导致请求被拦截无返回。
解决方案:测试版本可在App的res/xml/network_security_config.xml中配置信任用户证书,或Root测试设备后将Charles证书移动到系统证书目录。 - iOS场景:安装Charles证书后需额外开启完全信任权限,路径为
设置>通用>关于本机>证书信任设置,找到Charles对应证书开关打开即可,未开启时系统会判定证书无效。
2. Charles SSL代理规则配置问题
- 确认已开启对应域名的SSL代理:进入Charles顶部菜单
Proxy > SSL Proxying Settings,在SSL代理列表中添加目标域名+443端口,全局测试可直接填写*通配所有域名与端口。未配置对应规则时,Charles仅能捕获到CONNECT请求记录,无法解密SSL流量,App端会因证书校验失败终止请求。 - 检查Windows防火墙入站规则:临时关闭Windows Defender防火墙测试,若请求恢复正常,需添加入站规则允许Charles默认代理端口(8888)的通信。
3. App SSL证书固定(Pinning)校验限制
若测试App内置了SSL证书固定逻辑,即使系统层面信任了Charles证书,App内部也会校验服务端返回证书的公钥/指纹是否和内置的目标证书一致,Charles代理证书不匹配时会直接终止请求。测试场景下可注释App内Pinning相关代码,或使用Frida等工具绕过Pinning校验。
4. 移动端代理配置错误
确认移动端WiFi代理填写的是Windows主机的局域网IP(非127.0.0.1),端口和Charles设置的代理端口一致,且两台设备在同一局域网下,无AP隔离等路由限制。
内容的提问来源于stack exchange,提问作者Megan
相关产品推荐
相关产品推荐

