javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

这篇具有很好参考价值的文章主要介绍了javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原因:从java8 Update31开始,由于SSL协议中的安全漏洞,默认情况下禁用SSL v3协议 。

排查过程:可使用如下代码,打印http请求协议过程

//设置协议-最初未修改policy.security文件时加上这句,无效果,依然报错
System.setProperty("https.protocols", "TLSv1.2,TLSv1.1,TLSv1.0,SSLv3");

//打印请求过程,对比Write和Read 协议是否一致,若一致,可能就是因为禁用了某个协议,需继续往下看
System.setProperty("javax.net.debug", "all");

插曲:最初报错异常是javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate),按网上教程,找到jdk.tls.disabledAlgorithms 单独删除了SSLv3后,异常变成了javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure。最终删除了 SSLv3、TLSv1、TLSv1.1 才解决问题。

解决方法:
1、找到jvm下的java.security文件,Mac电脑路径示例:/Library/Java/JavaVirtualMachines/jdk1.8.0_311.jdk/Contents/Home/jre/lib/security 

#cd  /Library/Java/JavaVirtualMachines/jdk1.8.0_311.jdk/Contents/Home/jre/lib/security

2、编辑java.security文件,找到参数 jdk.tls.disabledAlgorithms 这一行,删除掉RC4 前面的几个值 即可。

1)定位参数所在行数
# cat -n java.security |grep 'jdk.tls.disabledAlgorithms' 

2)直接按行数编辑(示例723行)
#vi +723 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

3)删除 SSLv3, TLSv1,TLSv1.1 后,按Esc,然后wq! 回车,保存成功。修改后如下:
jdk.tls.disabledAlgorithms= RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
    include jdk.disabled.namedCurves

重新请求地址,请求正常,问题解决。

ps:若无权限,切换成root账号,执行命令 sudo su -  ,输入登录密码,重新按上述流程操作即可。文章来源地址https://www.toymoban.com/news/detail-506153.html

到了这里,关于javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java(92):javax.net.ssl.SSLException:Received fatal alert: protocol_version的解决方法

    2022-05-19 15:11:56 [ERROR] com.cipherxxx.utils.HttpsClientUtils - javax.net.ssl.SSLException: Received fatal alert: protocol_version 在Java 1.8上,默认TLS协议是v1.2。在Java 1.6和1.7上,默认是已废弃的TLS1.0,由于此项目使用的是jdk1.6,因此引发错误。 ------------------------------------------------------------- 服务端的

    2024年02月16日
    浏览(34)
  • java 连接mysql,出现 Caused by: javax.net.ssl.SSLException: Received fatal alert: internal_error 错误

    问题 在本地部署tomcat项目时,卡在了“Caused by: javax.net.ssl.SSLException: Received fatal alert: internal_error” 排查         查了资料发现在MySQL5.7.41及之前的版本,安全性较低,存在任何用户都可以连接上的 test 库,所以官方在5.7.43版本加大了对隐私的保护。并且采用了默认 useSS

    2024年03月13日
    浏览(68)
  • kettle工具连接MySQL数据库报错 Caused by: javax.net.ssl.SSLException: Received fatal alert: internal_error

            前几天为了修复MySQL数据库漏洞,项目上从5.7.41版本升级到了5.7.43,今天在使用kettle时发现数据库突然连不上了,测试连接报如下错误:            Error connecting to database: (using class org.gjt.mm.mysql.Driver) Communications link failure The last packet successfully received from the serve

    2024年02月06日
    浏览(51)
  • javax.net.ssl.SSLHandshakeException

    解决办法升级jdk版本或者修改jdk文件 1、对于服务器来说要支持域名并且不进行ssl证书校验,需要升级到jdk1.8的201版本及以上 2、修改…JavaJDKjrelibsecurity目录下java.security文件,添加下面语句到文件内容中

    2024年02月11日
    浏览(42)
  • Macos jdk ssl javax.net.ssl.SSLHandshakeException完美解决

    报了这么一个错误 javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake 网上一大把,测试不能用,谷歌了一下,发现少配置了一个环境变量。 System.setProperty(\\\"jdk.tls.useExtendedMasterSecret\\\", \\\"false\\\");//设置环境变量 /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/security/java.se

    2024年02月13日
    浏览(64)
  • javax.net.ssl.SSLHandshakeException: No appropriate protocol

    报错: 解释代码 这是一个Spring Boot应用程序的配置文件中的一行代码,用于设置数据库连接信息。具体解释如下: spring.datasource.url :这是Spring Boot中用于配置数据源URL的属性。 jdbc:mysql://ip:3306/dbuser :这是JDBC URL,用于指定数据库的类型(MySQL)、主机地址(ip)、端口号(

    2024年02月20日
    浏览(49)
  • 解决远程调用三方接口:javax.net.ssl.SSLHandshakeException报错

    最近在对接腾讯会议API接口,在鉴权完成后开始调用对方的接口,在此过程中出现调用报错:javax.net.ssl.SSLHandshakeException。 当你在进行https请求时,JDK中不存在三方服务的信任证书,导致出现错误javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败。

    2024年02月13日
    浏览(49)
  • Java调用Azure证书错误javax.net.ssl.SSLHandshakeException

    一、背景 Azure作为微软的公有云平台,提供了非常丰富的SDK和API让开发人员可以非常方便的调用的各项服务。公司业务需要,我们需要访问Azure上注册的应用程序,需要访问https地址 https://login.microsoftonline.com/​your-​​tenant-id 。 二、错误信息 简短报错信息:javax.net.ssl.SSLHa

    2024年02月06日
    浏览(52)
  • netty整合websocket支持自签证书出现netty websocket ssl Received fatal alert: certificate_unknown

    win+r cmd 生成自己jks文件,指向自己要生成jks的文件位置下,我直接生成到项目resources下 2.生成证书 3.迁移到行业标志 成功生成证书 将jks文件考入项目resources下 yaml配置: netty证书加载 这里我就只上关键代码了 不添加信任netty websocket ssl Received fatal alert: certificate_unknown。 错误原

    2024年02月02日
    浏览(42)
  • javax.net.ssl.SSLHandshakeException: PKIX path building failed

    错误信息 本地环境缺少ssl证书 一、下载证书          可以通过浏览器下载;也可以使用命令行 1、浏览器 查看证书,直接导出即可 2、命令行 openssl s_client -connect 目标网址:端口号 /dev/null | sed -ne \\\'/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p\\\' 证书名.crt 二、导入证书 1. 将证书移动到

    2023年04月22日
    浏览(84)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包