You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
注册

安卓设备上Charles Proxy显示‘unknown’及SSL证书未知问题求助

解决Charles Proxy安卓应用SSL抓包证书未知问题

先看你提供的报错截图:
Charles抓包报错截图

针对你遇到的安卓APP抓包失败、浏览器正常的情况,大概率是以下几个问题导致的,对应解决方法如下:

  • Android 7+的用户证书信任限制
    安卓7及以上系统默认不让APP信任用户手动安装的证书,只认系统级证书。如果没有root权限,要么给目标APP添加网络安全配置(需要反编译重打包):在AndroidManifest.xml里加上android:networkSecurityConfig="@xml/network_security_config",然后在res/xml目录创建配置文件,写入:

    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <base-config cleartextTrafficPermitted="true">
            <trust-anchors>
                <certificates src="user"/>
                <certificates src="system"/>
            </trust-anchors>
        </base-config>
    </network-security-config>
    

    要是有root权限,直接把Charles证书安装到系统证书目录(/system/etc/security/cacerts/),修改权限为644后重启设备。

  • APP启用了证书钉扎
    很多正规APP会做证书钉扎,强制只信任自家服务器的证书,直接拒绝Charles的代理证书。这种情况得绕过钉扎:

    • 用Xposed框架安装JustTrustMe模块,全局禁用证书验证;
    • 用Frida脚本,比如执行frida -U -f com.xxx.xxx -l justtrustme.js(替换成目标APP包名),临时禁用证书校验。
  • Charles SSL代理配置不全
    检查Charles的SSL Proxying Settings,确保添加的主机条目里端口是*(匹配所有端口)或者包含目标APP用的HTTPS端口(一般是443),别只填主机名漏了端口。

  • 证书安装的用途选错了
    重新安装Charles证书时,选择“VPN和应用”这个用途,别选其他的,有些机型选不对会导致APP无法识别证书。

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

火山引擎 最新活动