设备接入高版本JDK与SSL协议问题解决方案

本文解决了一个特定的HTTPS数据推送问题,即“No appropriate protocol(protocol is disabled or cipher suites are inappropriate)”错误。该问题出现在使用高版本JDK进行数据推送时。文中详细介绍了错误的原因,并提供了两种解决方案:一是通过代码调整HTTP客户端参数;二是修改JDK配置文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

使用JDK8高版本做HTTPS数据推送时报错,数据无法推送,报No appropriate protocol (protocol is disabled or cipher suites are inappropriate) 此错误,使用相关的SSL协议连接也会报此错误。

分析
  • 现象:JDK1.8.0_181 版本 不会报错,使用此版本以上如目前公司使用的 JDK1.8.0_291就会报错。
  • 原因:高版本JDK禁用了 SSLv3, TLSv1, TLSv1.1 这三个协议,这三个协议存在不安全漏洞,所以高版本JDK直接禁用了。
解决方式
  1. 代码方式解决,修改httpclient参数
SSLContext sc = SSLContext.getInstance("TLSv1.2");
  1. 修改JDK配置文件
打开文件所在目录 C:\Program Files\Java\jdk1.8.0_291\jre\lib\security
	修改文件:java.security
	搜索以下内容:
	jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
	    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
	    include jdk.disabled.namedCurves
	去除SSLv3, TLSv1, TLSv1.1这三个选项,保存文件重启项目。
结语

[No appropriate protocol (protocol is disabled or cipher suites are inappropriate)] (https://stackoverflow.com/questions/60654644/no-appropriate-protocol-protocol-is-disabled-or-cipher-suites-are-inappropriate)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值