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

JMeter录制时响应体返回certificate_unknown错误如何解决?

问题:JMeter录制时出现certificate_unknown错误

我使用JMeter的**Recording Controller(录制控制器)**配合代理,在BlueStack(蓝叠模拟器)和个人手机上进行测试,但JMeter的响应体中持续出现certificate_unknown错误。已将JMeter的CA证书下载并安装到模拟器和手机中,想明确该错误是JMeter证书问题还是与外部网站的连接问题,以及对应的解决方法。

错误堆栈信息

javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
    at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)
    at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:336)
    at java.base/sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:293)
    at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:185)
    at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)
    at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1426)
    at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1336)
    at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:450)
    at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:841)
    at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:932)
    at java.base/java.io.BufferedInputStream.fill(BufferedInputStream.java:252)
    at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:271)
    at org.apache.jmeter.protocol.http.proxy.HttpRequestHdr.parse(HttpRequestHdr.java:157)
    at org.apache.jmeter.protocol.http.proxy.Proxy.run(Proxy.java:214)

原因分析与解决方案

错误原因

这个certificate_unknown错误基本是JMeter证书的信任问题,和外部网站连接无关。本质是模拟器/手机作为客户端,与JMeter代理建立SSL连接时,不认可JMeter的CA证书,导致SSL握手失败。

解决步骤

  • 确认证书安装位置与用途:
    • 安卓系统需将JMeter证书安装到系统证书目录,而非用户证书目录。部分设备需要ROOT权限才能写入系统目录,也可通过工具将用户证书转换为系统证书格式后安装。
    • 安装过程中务必选择“VPN和应用”的证书用途,确保被测应用能识别该证书。
  • 重新导出并验证JMeter证书:
    • 打开JMeter,依次点击选项→SSL管理器,重新导出ApacheJMeterTemporaryRootCA.crt文件,确保导出过程无异常。
    • 检查证书的有效期,确认证书未过期。
  • 核对代理配置:
    • 模拟器/手机的代理地址要设置为JMeter所在机器的局域网IP,端口需与JMeter代理服务器的端口一致(默认8888)。
    • 确保JMeter代理已启动,且本地防火墙未拦截该端口的通信。
  • 处理证书锁定情况:
    • 如果被测应用启用了SSL证书锁定(SSL Pinning),会拒绝信任第三方证书,此时需要借助Xposed框架搭配JustTrustMe等插件绕过证书锁定。
    • 安卓10及以上版本,需在系统设置中开启“允许应用查看证书”权限,或在开发者选项中关闭“验证应用”功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 08:35:58