You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android手机无法连接Charles Proxy:SSL握手失败问题求助

Android连接Charles Proxy时SSL握手失败排查方案

已执行操作

  • 电脑端安装Charles Proxy:版本[insert version number],操作系统[Windows/macOS/Linux]
  • 配置Charles SSL代理:打开Charles,进入Proxy > SSL Proxying Settings,启用SSL Proxying并添加*到代理位置列表
  • Android设备代理设置:连接与电脑同网络Wi-Fi,进入设置>网络和互联网>Wi-Fi,长按Wi-Fi选修改网络,勾选高级选项,手动设置代理为电脑IP+端口8888并保存
  • 安装Charles根证书:Android浏览器访问http://charlesproxy.com/getssl下载证书,进入设置>安全>加密与凭据>从存储安装,完成后确认证书在可信凭据的用户标签下

当前问题

完成上述操作后,仍出现SSL握手失败,无法正常连接Charles抓包。

排查修复步骤

  1. 确认Charles设备访问权限
    打开Charles,进入Proxy > Access Control Settings,将Android设备的IP地址添加到允许列表,或临时勾选"Allow all computers to connect"(测试场景使用,正式环境建议指定IP)

  2. 适配Android 7+证书信任规则
    Android 7及以上系统默认不信任用户安装的证书,需针对性处理:

    • 测试debug包:在AndroidManifest.xml中添加android:networkSecurityConfig="@xml/network_security_config",并创建res/xml/network_security_config.xml文件,内容如下:
      <?xml version="1.0" encoding="utf-8"?>
      <network-security-config>
          <debug-overrides>
              <trust-anchors>
                  <certificates src="user"/>
              </trust-anchors>
          </debug-overrides>
      </network-security-config>
      
    • 抓包release包:需将Charles证书安装到系统凭据目录(需Root权限)
  3. 细化SSL代理规则
    虽然添加了通配符*,部分应用可能存在特殊网络配置,可尝试在SSL Proxying Settings中明确添加目标域名(如*.example.com),避免通配符匹配失效

  4. 检查网络拦截与端口占用

    • 关闭电脑端防火墙、杀毒软件的网络拦截功能
    • 验证8888端口是否被占用:Windows执行netstat -ano | findstr 8888,macOS/Linux执行lsof -i :8888,若被占用需更换Charles代理端口或关闭占用进程
  5. 验证网络连通性
    在Android设备上ping电脑IP确认网络可达;同时检查Charles的Proxy > Proxy Settings,确认HTTP代理端口为8888且已启用

  6. 更新Charles版本
    若使用老旧版本Charles,可能存在系统兼容性问题,尝试更新至最新稳定版

内容的提问来源于stack exchange,提问作者user25306650

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 10:10:00