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

JMeter安卓原生应用测试录制登录时报Trust anchor for certification path not found错误

问题原因

java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.报错的核心是你测试的移动端原生应用不信任JMeter录制代理生成的自签名根CA证书。安卓7.0及以上系统默认仅信任系统预装的CA证书,你手动安装的JMeter证书属于用户级证书,原生应用默认不会信任这类证书,因此HTTPS请求校验失败。

解决方案
  • 方案1:修改测试应用的网络安全配置(无需root,适用于能拿到应用源码的场景)

    1. 打开安卓项目的AndroidManifest.xml,在application节点添加属性:
    android:networkSecurityConfig="@xml/network_security_config"
    
    1. 在项目res/xml目录下新建network_security_config.xml文件,写入以下配置允许信任用户证书:
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <base-config>
            <trust-anchors>
                <!-- 信任系统预装CA证书 -->
                <certificates src="system" />
                <!-- 信任用户安装的CA证书,用于JMeter录制 -->
                <certificates src="user" />
            </trust-anchors>
        </base-config>
    </network-security-config>
    
    1. 重新打包应用安装到设备后即可正常录制。
  • 方案2:将JMeter证书安装为系统级证书(无需修改应用,适用于root设备/模拟器)

    1. 从JMeter安装目录的bin文件夹下导出ApacheJMeterTemporaryRootCA.crt证书,先手动安装到设备的用户证书目录
    2. 用openssl命令转换证书为系统要求的格式,执行:
    openssl x509 -inform PEM -subject_hash_old -in ApacheJMeterTemporaryRootCA.crt | head -1
    
    得到一串哈希值,例如e8d99549,将证书文件重命名为e8d99549.0
    3. 将重命名后的证书移动到设备的系统证书目录/system/etc/security/cacerts/,修改文件权限为644,重启设备后JMeter证书会被系统默认信任。
  • 方案3:iOS设备额外配置

    手动安装JMeter证书后,还需要进入「设置」→「通用」→「关于本机」→「证书信任设置」,找到JMeter对应的根证书,开启完全信任开关。
注意事项
  • 每次重启JMeter的HTTP(S)录制代理后,根证书都会重新生成,需要重新安装新证书到设备,避免旧证书失效
  • 若测试应用开启了SSL Pinning(证书锁定),需要先移除应用内的锁定配置后才能完成HTTPS录制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:06:07