在性能测试中,当被测服务采用HTTPS协议时,JMeter需正确配置证书才能建立安全连接,作为站长,我曾因忽略证书配置导致测试失败,现分享完整操作指南:
当服务器使用自签名证书或私有CA签发证书时,JMeter默认不信任这些证书,会报错:
javax.net.ssl.SSLHandshakeException: PKIX path building failed
配置证书可解决信任问题,确保JMeter正常测试HTTPS接口。
1、导出服务器证书
浏览器访问目标URL → 点击地址栏锁图标 → 导出证书(如server.crt
)。
2、导入到JMeter信任库
keytool -import -alias server_cert -keystore JMETER_HOME/bin/ApacheJMeterTemporaryRootCA.keystore -file server.crt
密码默认为password
出现信任提示时输入yes
3、重启JMeter生效
▷ 场景2:双向认证(需客户端证书)
1、获取客户端证书
通常为.p12
或.jks
文件(由服务器管理员提供)。
2、JMeter添加证书
- HTTP请求 → "Advanced"标签页
- 设置:
Keystore: 客户端证书路径 Keystore Password: 证书密码
- 勾选Use KeyStore
(JMeter 5.4+)
1、证书有效期
定期检查证书是否过期,避免测试中断。
2、信任库管理
- 生产环境勿用默认密码password
- 自定义信任库路径(通过系统属性指定):
System.setProperty("javax.net.ssl.trustStore", "/your/custom/truststore.jks")
3、协议与算法兼容性
若服务器强制使用TLS 1.3,在jmeter.properties
中显式配置:
https.default.protocol=TLSv1.3
- 启用JMeter SSL日志(定位握手失败原因):
javax.net.debug=ssl,handshake
- 日志路径:jmeter.log
作为长期使用JMeter的站长,我认为证书配置看似简单,却是性能测试成败的关键一环,尤其金融类项目必须严格验证证书链,否则可能遗漏安全瓶颈,建议将证书管理纳入自动化测试流程——毕竟在HTTPS普及的今天,谁还测HTTP呢?
文章摘自:https://idc.huochengrm.cn/fwq/11882.html
评论