Java 7的javax.net.ssl.SSLHandshakeException
Java 7的javax.net.ssl.SSLHandshakeException
现象:Java7通过httpsURLConnection建立HTTPS连接,异常如下:
javax.net.ssl.SSLHandshakeException: Caused by: Remote host closed connection during handshake Caused by: SSL peer shut down incorrectly
解决方案:客户端需要提高版本到TLSv1.1或TLSv1.2。这可以有2种实现思路,一种是设置JVM的https.protocols参数,另一种是构造支持TLSv1.1或TLSv1.2的SSLContext。
1) 通过-D给出JVM启动参数
-Dhttps.protocols=TLSv1.1,TLSv1.2
2) 必要时,在代码中设置运行时参数
System.setProperty("https.protocols", "TLSv1.1,TLSv1.2");
3) 构造支持TLSv1.1或TLSv1.2的SSLContext
SSLContext sslContext = SSLContext.getInstance("TLSv1.1");
或
SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
其中的机理如下:
客户端Java 7默认使用Sun JSSE provider(PKCS12, SunX509 key/trust factories, SSLv3, TLSv1),支持SSLv3或TLSv1,默认通过TLSv1建立到服务器的HTTPS连接。被连接的服务器却只允许使用TLSv1.1或TLSv1.2的HTTPS连接请求。
Java 7经过多次小版本的更新,虽然Sun JSSE provider默认仍然使用TLSv1,但是也支持TLSv1.1或TLSv1.2
特别鸣谢:易生一世
Java 7的javax.net.ssl.SSLHandshakeException的更多相关文章
- 解决Java调用Azure SDK证书错误javax.net.ssl.SSLHandshakeException
Azure作为微软的公有云平台,提供了非常丰富的SDK和API让开发人员可以非常方便的调用的各项服务,目前除了自家的.NET, Java, Python, nodeJS, Ruby,PHP等语言都提供 ...
- 解决 Java 调用 Azure SDK 证书错误 javax.net.ssl.SSLHandshakeException
Azure 作为微软的公有云平台,提供了非常丰富的 SDK 和 API 让开发人员可以非常方便的调用的各项服务,目前除了自家的 .NET.Java.Python. nodeJS.Ruby,PHP 等语 ...
- 在ssm框架测试中解决javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException
在单元测试发现causeBy:javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException 经发现是db.p ...
- javax.net.ssl.SSLHandshakeException(Cas导入证书)
一.报错: javax.net.ssl.SSLHandshakeException二.原因分析:CAS部署时,常常要涉及到HTTPS的证书发布问题.由于在实验环境中,CAS和应用服务常常是共用一台PC ...
- 【转】javax.net.ssl.SSLHandshakeException(Cas导入证书)
本文转自:http://my.oschina.net/laiwanshan/blog/159057 一.报错: javax.net.ssl.SSLHandshakeException 二.原因分析:C ...
- 解决访问HTTPS,抛出的异常javax.net.ssl.SSLHandshakeException
本地测试没问题,http换成https抛出异常javax.net.ssl.SSLHandshakeException,网上有说是服务器证书,有说要启动SSL3协议的,反正没有找到有用的. 在GET和P ...
- 【传输协议】发送https请求,由于客户端jdk版本过高,服务端版本低。导致异常:javax.net.ssl.SSLHandshakeException: Server chose SSLv3, but that protocol version is not enabled or not supported by the client.
本地环境jdk为1.8,服务器使用jdk版本未知.但发送https请求,抛出如下异常,解决方案. 一:发送异常内容如下 javax.net.ssl.SSLHandshakeException: Ser ...
- jdk1.7访问https报javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure问题解决
本地jdk版本java version "1.8.0_31",代码中已对https做了相应处理:信任所有来源证书,运行正常:上包到服务器(服务器jdk版本java version ...
- 转:javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 解决方案
转:javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 解决方案javax.net.ssl.SSL ...
随机推荐
- ubuntu下载安装软件并创建图标
本列以安装webstorm软件 1.官网下载软件的压缩包 2.解压 umlinux@umlinux-PC:~/idea$ tar -zxvf ideaIU-2020.3.1.tar.gz 3.找到we ...
- Linux_搭建Samba服务(匿名访问)
[RHEL8]-SMBserver:[RHEL7]-SMBclient !!!测试环境我们首关闭防火墙和selinux(SMBserver和SMBclient都需要) [root@localhost ...
- 戴尔 R730xd 服务器更改管理口密码 图文教程
一.开机根据提示按F2进入配置界面 - 选择中间的iDRAC Setting选项,回车确认 二.进入之后选择 user configuration 选项 三.在change password 处键入新 ...
- BXL文件怎样转换为AD LIB文件
https://jingyan.baidu.com/article/48b558e326e1b17f39c09a57.html
- Linux 性能监控工具
- 电压笔DIY
电压逻辑笔 http://www.cirmall.com/circuit/2279/detail?3#/details http://www.cirmall.com/circuit/7543/CD45 ...
- 统计行数、文件夹个数、文件个数的相关shell命令
极客君最近做项目,刚好遇到需要统计一些sql文件数量的问题,用到一些实用的shell命令,记录下来,以后万一还能用上呢? 如果在终端不打开文件看到一共多少行,则可以使用wc命令来实现: wc -l [ ...
- 基于Jira的运维发布平台的设计与实现
作者:乔克 公众号:运维开发故事 上线发布是运维的日常工作,常见的发布方式有: 手动发布 Jenkins发布平台 Gitlab CI ...... 除此之外还有需要开源软件,他们都有非常不错的发布管理 ...
- DDD中限界上下文与通用语言的作用
什么是通用语言 通用语言, 最主要的目的就是减少交流中信息丢失, 在实际开发中, 可能关联很多人, 例如有业务层面的业务细节制定者.领域专家.产品经理.项目经理 .架构师.开发经理.测试经理等等, 即 ...
- python字典转bytes类型字典
python字典转bytes类型字典import base64 import json 1. a={"Vod":{"userData":"{}&quo ...