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

使用LoadRunner编写JSON格式REST API脚本遇证书错误求助

解决LoadRunner 2022 REST API脚本的-27493证书错误

问题说明

用LoadRunner 2022编写JSON格式REST API脚本时,触发错误:

Action.c(11): Error -27493: Client authentication certificate needed but is not available. Use "web_set_certificate" or "web_set_certificate_ex" to specify a certificate. [MsgId: MERR-27493]

相同请求在JMeter 5.5中无需额外证书即可正常运行,且已为LoadRunner配置web_set_user基础认证,请求头与JMeter完全一致,需解决该错误以获取HTTP 200响应。

可行解决方法

1. 开启LoadRunner自动证书选择

LoadRunner的SSL处理逻辑和JMeter存在差异,尝试开启自动证书匹配:

  • 打开脚本的Runtime Settings,依次进入Internet Protocol > Preferences > SSL
  • 勾选Automatically select client certificate选项
  • 重新运行脚本,验证是否能自动调用系统证书库中的可用证书

2. 导出并配置JMeter隐式使用的证书

JMeter可能自动调用了系统或浏览器的客户端证书,可导出后在LoadRunner中配置:

  • 用浏览器访问目标API地址,导出客户端认证证书(选择PKCS#12格式,设置提取密码)
  • 在LoadRunner脚本的请求前添加web_set_certificate_ex函数,示例代码:
    web_set_certificate_ex(
        "CertFilePath=C:\\certs\\client_cert.pfx",
        "CertPassword=your_pfx_password",
        "CertFormat=PFX",
        LAST);
    

3. 确认基础认证的执行顺序

确保web_set_user函数在请求语句前调用,参数准确:

web_set_user("api_username", "api_password", "target_api_host:443");

若API同时要求基础认证和客户端证书,可调整顺序,将证书配置函数放在认证函数之前执行。

4. 排查代理与证书信任问题

  • 关闭LoadRunner可能使用的拦截代理(如Fiddler),避免代理干扰SSL握手
  • 在Runtime Settings的SSL配置中,将目标API的根证书添加至信任列表,防止证书链验证失败

5. 对比SSL握手流程定位差异

用Wireshark抓取JMeter和LoadRunner的请求包,对比SSL握手阶段:

  • 查看JMeter是否在握手时发送了客户端证书,以及证书的来源
  • 若JMeter未发送证书但请求成功,需联系API服务端确认是否对LoadRunner这类工具存在特殊的证书验证逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 05:43:21