0

0

JMeter 连接 TLS 1.0 服务失败的解决方案:启用旧版 TLS 协议

霞舞

霞舞

发布时间:2026-03-10 20:47:02

|

501人浏览过

|

来源于php中文网

原创

JMeter 连接 TLS 1.0 服务失败的解决方案:启用旧版 TLS 协议

jmeter 在 java 8+ 环境下默认禁用 tls 1.0,导致连接仅支持 tls 1.0 的遗留服务时抛出 sslhandshakeexception;本文详解如何通过修改 jvm 安全配置安全启用 tls 1.0(不降级 jdk)。

jmeter 在 java 8+ 环境下默认禁用 tls 1.0,导致连接仅支持 tls 1.0 的遗留服务时抛出 sslhandshakeexception;本文详解如何通过修改 jvm 安全配置安全启用 tls 1.0(不降级 jdk)。

当使用 JMeter 5.4.2(兼容 JDK 8)测试老旧 SOAP 服务时,若服务端仅支持 TLS 1.0,而客户端(JMeter/JVM)拒绝该协议版本,便会触发典型的握手异常:

javax.net.ssl.SSLHandshakeException: The server selected protocol version TLS10 is not accepted by client preferences [TLS12]

该错误并非 JMeter 自身限制,而是底层 JVM(尤其是较新 JDK 8u292+ 或 OpenJDK 8/11+ 发行版)在 java.security 文件中默认禁用了 TLS 1.0 —— 即使你未手动添加,部分厂商 JDK(如 Microsoft Build of OpenJDK、Amazon Corretto、Adoptium)已将 TLSv1 列入 jdk.tls.disabledAlgorithms 黑名单。

✅ 正确解决路径:精准启用 TLS 1.0(推荐)

请勿降级 JDK(如退回 JDK 7),也不建议全局开启不安全算法。应仅针对当前测试场景,在最小作用域内启用 TLS 1.0

步骤 1:定位并编辑 java.security 文件

该文件位于 JDK 安装目录下的:
$JAVA_HOME/jre/lib/security/java.security(JDK 8)或
$JAVA_HOME/conf/security/java.security(JDK 9+)

打开后查找以下行:

jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, ...

安全修改方式(推荐):
仅移除 TLSv1(注意保留逗号与空格格式),例如改为:

jdk.tls.disabledAlgorithms=SSLv3, TLSv1.1, RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
    include jdk.disabled.namedCurves

⚠️ 注意:TLSv1.1 建议仍保留禁用(PCI DSS 合规要求),除非服务端明确仅支持 TLS 1.1。

Vozo
Vozo

Vozo是一款强大的AI视频编辑工具,可以帮助用户轻松重写、配音和编辑视频。

下载

步骤 2:强制 JMeter 使用修改后的 JVM 配置

确保 JMeter 启动时加载了更新后的 java.security。可通过以下任一方式验证生效:

  • 启动 JMeter 前设置环境变量(推荐用于隔离测试):

    export JAVA_HOME=/path/to/your/jdk8
    jmeter -v  # 查看启动日志中 JVM 参数及 security provider 信息
  • 或在 jmeter.bat / jmeter.sh 中显式指定安全属性(更可控):

    JVM_ARGS="-Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2"

    ? 补充说明:-Djdk.tls.client.protocols 是 JVM 级别白名单,优先级高于 disabledAlgorithms,可作为兜底方案(但需确保 TLSv1 未被完全禁用)。

步骤 3:JMeter 层面补充验证(可选)

在 jmeter.properties 中确认 HTTP 默认协议未被覆盖:

# 确保此项未被设为 false 或注释掉(默认即启用 TLS)
https.default.protocol=TLSv1.2

# 若需强制某线程组使用 TLSv1,可在 HTTP 请求采样器中添加:
# 【高级】→【SSL 协议】下拉选择 "TLS"(JMeter 5.4+ 会映射为 TLSv1)

⚠️ 重要注意事项

  • 安全性权衡:TLS 1.0 已被 NIST、PCI DSS 等标准弃用,仅限临时测试或无法升级的内部遗留系统。生产环境务必推动服务端升级至 TLS 1.2+。
  • 不要全局启用:避免在 java.security 中删除整个 jdk.tls.disabledAlgorithms 行,这将极大削弱 JVM 安全基线。
  • OpenJDK 厂商差异:Microsoft、Amazon、Eclipse Temurin 等 OpenJDK 构建版本普遍默认禁用 TLSv1/TLSv1.1;Oracle JDK 8u292+ 也已同步此策略。
  • JMeter 版本无关性:该问题本质是 JVM 行为,与 JMeter 5.4.2/5.5/5.6 均无关;只要底层 JDK 启用了 TLS 1.0 禁用策略,就会触发。

✅ 总结

场景 推荐操作
✅ 临时测试 TLS 1.0 服务 编辑 java.security,从 jdk.tls.disabledAlgorithms 中移除 TLSv1
✅ 多环境隔离 使用独立 JDK 实例 + 修改其 java.security,避免影响其他应用
❌ 不推荐 降级 JDK、全局取消所有禁用算法、在代码中硬编码协议(JMeter 不支持)

完成配置后重启 JMeter,重放请求即可成功建立 TLS 1.0 握手。记住:技术妥协应有边界,每一次对旧协议的启用,都应同步驱动服务端的安全升级计划。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
eclipse教程
eclipse教程

php中文网为大家带来eclipse教程合集,eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。php中文网还为大家带来eclipse的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

193

2023.06.14

eclipse怎么设置中文
eclipse怎么设置中文

eclipse设置中文的方法:除了设置界面为中文外,你还可以为Eclipse添加中文插件,以便更好地支持中文编程。例如,你可以安装EBNF插件来支持中文变量名,或安装Chinese Helper来提供中文帮助文档。本专题为大家提供eclipse设置中文相关的各种文章、以及下载和课程。

805

2023.07.24

c语言编程软件有哪些
c语言编程软件有哪些

c语言编程软件有GCC、Clang、Microsoft Visual Studio、Eclipse、NetBeans、Dev-C++、Code::Blocks、KDevelop、Sublime Text和Atom。更多关于c语言编程软件的问题详情请看本专题的文章。php中文网欢迎大家前来学习。

623

2023.11.02

Eclipse版本号有哪些区别
Eclipse版本号有哪些区别

区别:1、Eclipse 3.x系列:Eclipse的早期版本,包括3.0、3.1、3.2等;2、Eclipse 4.x系列:Eclipse的最新版本,包括4.0、4.1、4.2等;3、Eclipse IDE for Java Developers等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

180

2024.02.23

eclipse和idea有什么区别
eclipse和idea有什么区别

eclipse和idea的区别:1、平台支持;2、内存占用;3、插件系统;4、智能代码提示;5、界面设计;6、调试功能;7、学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

152

2024.02.23

eclipse设置中文全教程
eclipse设置中文全教程

本专题整合了eclipse设置中文相关教程,阅读专题下面的文章了解更多详细操作。

116

2025.10.10

eclipse字体放大教程
eclipse字体放大教程

本专题整合了eclipse字体放大教程,阅读专题下面的文章了解更多详细内容。

154

2025.10.10

eclipse左边栏不见了解决方法
eclipse左边栏不见了解决方法

本专题整合了eclipse左边栏相关教程,阅读专题下面的文章了解更多详细内容。

120

2025.10.15

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

4

2026.03.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号