JMeter访问自签名证书HTTPS接口报错如何关闭SSL证书校验
问题根因
- 你之前配置的
server.rmi.ssl.disable=true是JMeter分布式测试场景下控制节点间RMI通信的SSL开关,和HTTP采样器发起HTTPS请求的SSL校验逻辑完全无关,所以不会生效。 - 报错的核心原因是你的自签名证书不符合X509规范,存在空的颁发者DN字段,Java 8默认开启了严格证书解析规则,直接拦截了这类非法证书。
- JMeter 5.x版本之后默认继承JVM的SSL校验规则,不再默认完全忽略非法证书,这和你查阅的旧版资料的情况有差异。
解决方案
方案1:修改JMeter配置文件(永久生效)
- 打开JMeter安装目录下
bin文件夹中的user.properties文件 - 在文件末尾添加以下配置:
jmeter.ssl.disable.certificate.validation=true
- 再修改同目录下的
system.properties文件,末尾添加:
sun.security.x509.allowEmptyIssuerDN=true
- 重启JMeter后生效。
方案2:启动时添加JVM参数(临时生效,适合单次测试)
如果不想修改配置文件,可以在启动JMeter时指定参数:
- Windows系统:打开cmd进入JMeter的bin目录,执行命令
jmeter.bat -Dsun.security.x509.allowEmptyIssuerDN=true -Djmeter.ssl.disable.certificate.validation=true - Linux/Mac系统:打开终端进入JMeter的bin目录,执行命令
./jmeter.sh -Dsun.security.x509.allowEmptyIssuerDN=true -Djmeter.ssl.disable.certificate.validation=true
方案3:修复自签名证书(推荐长期使用)
如果后续还要长期测试该服务,建议重新生成符合规范的自签名证书,补全颁发者DN、使用者DN、有效期等必填字段,从根源避免证书解析问题。
内容的提问来源于stack exchange,提问作者Roddy of the Frozen Peas
相关产品推荐
相关产品推荐

