java http 客户端使用TSLv1.2[解决Remote host closed connection during handshake的问题]

Java 7的javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake异常分析 Java7通过httpsURLConnection建立HTTPS连接,异常如下: javax.net.ssl.SSLHandshakeException: Caused by: Remote host closed connection during handshake Caused by: SSL peer shut down incorrectly 解决方案似乎是明显的,客户端需要提高版本... 阅读详情

1. jdk1.7默认是TSLv1, 但是可以支持TSLv1.1,TSLv1.2,jdk1.8默认是TSLv1.2

2.如果客服端是TSLv1,服务器端设置是TSLv1.2,访问会出现connection reset的错误.

3.既然jdk1.7可以支持TSLv1.2那么肯定有办法设置。网上找了好久,查询谷姐资料看说法最多的是加入jvm启动参数: -Dhttps.protocols=TLSv1.1,TLSv1.2 但是我试了没有用,还是报错。

4.用java程序查询自己当前程序默认支持的SSL/TSL版本的方法。

public static void main(String[] args) throws Exception {
		SSLContext context = SSLContext.getInstance("TLS");
		context.init(null, null, null);

		SSLSocketFactory factory = (SSLSocketFactory) context.getSocketFactory();
		SSLSocket socket = (SSLSocket) factory.createSocket();

		String[] protocols = socket.getSupportedProtocols();

		System.out.println("Supported Protocols: " + protocols.length);
		for (int i = 0; i < protocols.length; i++) {
			System.out.println(" " + protocols[i]);
		}

		protocols = socket.getEnabledProtocols();

		System.out.println("Enabled Protocols: " + protocols.length);
		for (int i = 0; i < protocols.length; i++) {
			System.out.println(" " + protocols[i]);
		}

	}

5.通过GUI查询自己javaTSL版本。

  ①.打开Java Control Panel.

  ②.高级。拉到最下面。

                     

                                   

6.关门,放代码。继承import org.apache.http.impl.client.DefaultHttpClient;类,改了一点东西,使用的时候用SSLClien就好了。



import org.apache.http.impl.client.DefaultHttpClient;

public class SSLClient extends DefaultHttpClient {
		public SSLClient() throws Exception {
			super();
			SSLContext ctx = SSLContext.getInstance("TLSv1.2");
			X509TrustManager tm = new X509TrustManager() {
				@Override
				public void checkClientTrusted(X509Certi<a target=_blank target="_blank" href="http://superuser.com/questions/747377/enable-tls-1-1-and-1-2-for-clients-on-java-7">http://superuser.com/questions/747377/enable-tls-1-1-and-1-2-for-clients-on-java-7</a>ficate[] chain, String authType) throws CertificateException {
				}

				@Override
				public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
				}

				@Override
				public X509Certificate[] getAcceptedIssuers() {
					return null;
				}
			};
			ctx.init(null, new TrustManager[] { tm }, null);
			org.apache.http.conn.ssl.SSLSocketFactory ssf = new org.apache.http.conn.ssl.SSLSocketFactory(ctx,
					org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
			ClientConnectionManager ccm = this.getConnectionManager();
			SchemeRegistry sr = ccm.getSchemeRegistry();
			sr.register(new Scheme("https", 443, ssf));
		}
	}


7.如果你觉得本文章有用并且对你有帮助,请用支付宝扫描下面的二维码给我打赏。一块两块不嫌少,一千两千不嫌多。,




8.参考

  ①.http://stackoverflow.com/questions/21245796/javax-net-ssl-sslhandshakeexception-remote-host-closed-connection-during-handsh 

   ②.http://superuser.com/questions/747377/enable-tls-1-1-and-1-2-for-clients-on-java-7

   ③.https://blogs.oracle.com/java-platform-group/entry/java_8_will_use_tls

【IDEA】 解决在idea中连接 Mysql8.0,驱动无法下载问题 在idea中连接 Mysql8.0,驱动无法下载 阅读详情

相关推荐

Debezium报错处理系列之九十四: javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake

Debezium报错处理系列之九十四: javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake

zhengzaifeidelushang的博客 3648

restTemplate发送https请求报错I/O error on POST request for “xxxx“: Remote host terminated the handshake解决

最近在项目开发中遇到了一个问题,用restTemplate调用https接口的时候一直掉不通,报错I/O error on POST request for “xxxx”: Remote host terminated the handshake;

weixin_47390965的博客 2万+

RK3588平台-ES8388音频驱动调试与设备树配置实战

本文详细解析了在RK3588平台上调试ES8388音频驱动的实战过程。内容涵盖Linux音频驱动的三层架构(Machine、Platform、Codec),并重点提供了设备树(DTS)的完整配置示例,包括I2C节点、声卡节点及音频路由设置。文章还分享了驱动加载验证、amixer调试命令以及常见问题(如无声、变调)的排查思路,旨在帮助开发者快速完成RK3588与ES8388的音频系统集成。

mango的博客 806

Remote host closed connection during handshake问题解决方法

最近在项目开发中用OkHttpClient获取网络上的图片,本地开发一切正常,结果放到服务器上,获取图片频繁失败,查看日志发现报错: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:992) at sun.security.ssl.SSLSocketImp

hgq0916的博客 5万+

5分钟搞定CST周期性结构仿真:共面波导色散曲线快速生成技巧

本文提供了一套在CST Studio Suite中快速仿真周期性结构并生成色散曲线的标准化流程。针对共面波导设计,重点解析了周期性边界条件的核心设置、本征模求解器(JDM算法)的优化技巧,以及通过参数扫描与后处理模板实现自动化,旨在帮助射频与微波工程师在5分钟内高效完成关键性能验证。

blue的专栏 1246

基于PyTorch的BP神经网络PID控制器动态调参实战

本文详细介绍了基于PyTorch的BP神经网络PID控制器动态调参实战,结合BP神经网络的自适应能力和PID控制算法的经典优势,实现工业控制中的高效参数调整。通过PyTorch实现BP-PID融合架构,包括网络设计、损失函数优化及动态调参技巧,显著提升控制性能,适用于温度控制、电机控制等场景。

weixin_29094775的博客 520

Remote host closed connection during handshake

https通过TSLv1和TSLv1.2协议通信。 jdk1.7默认是TSLv1, 可以支持TSLv1.1,TSLv1.2, jdk1.8默认是TSLv1.2 假如服务器端设置是TSLv1.2,而客服端是TSLv1, 访问就会出现Remote host closed connection during handshake的错误. **解决办法:**强制通过TLSv1.2或TLSv1通信,前提服务端也采用相应协议。 ​ SSLContext ctx = SSLContext.getI..

开心就好 2万+

国产蓝牙MCU选型避坑指南:从汇顶到杰理,这7家厂商的实测体验

本文基于一线开发者对汇顶、泰凌微、沁恒、博通集成、奉加微、杰理、翱捷等七家主流国产蓝牙MCU厂商的实测体验,提供了一份详实的选型避坑指南。文章不仅对比了各厂商芯片的SDK质量、文档、开发工具与技术支持等“软实力”,还深入剖析了实际开发中可能遇到的功耗、射频、版本兼容性等核心痛点,并针对不同项目需求给出了具体的选型决策建议,旨在帮助工程师高效完成国产蓝牙MCU选型。

u5v6w7的博客 338

SSL/TLS握手时报Remote host closed connection during handshake

一、问题的发现 问题是前段时间发现和处理,现在再来回顾和总结。那段时间,线上偶尔预警Remote host closed connection during handshake这个报错,次数大概是一天3-10次左右,频率不高。一开始没有多少关注,但心想既然出现了,总要查个究竟。 这个功能请求了一个第三方接口,使用https协议。 二、尝试处理 自己对https协议理解不深,出现这个问题,先是百度,后是谷歌,反正查的都查了。网上分析的原因无非是两种: ①、ssl版本问题 ②、ssl证书验证问题 ③、jdk1.

u011442760的博客 1万+

泛微OA表单设计实战:如何快速实现自定义多选浏览框(附完整配置步骤)

本文详细介绍了在泛微OA中快速实现自定义多选浏览框的完整配置步骤。针对招聘提报、活动审批等需要从海量数据中规范选择多个条目的业务场景,文章从理解需求、构建数据源、设计查询页面到创建浏览框控件,提供了清晰的实战指南,帮助开发者高效解决复杂数据选择难题,提升表单操作体验。

yog99的博客 1048

泰凌微8258入门教程 环境篇④——开发板+烧录器 8258mesh新手套件购买

工欲善其事,必先利其器。 淘宝链接:https://item.taobao.com/item.htm?

4128

FTPSClient上传文件报 Remote host terminated the handshake

最近做了个项目,是要和哥伦比亚当地的软件商做接口传凭证。 那边给了接口方式,用sftp的方式给他们指定的服务器目录传txt格式的报文。然后他们再自己读取到自己系统里。 虽然不知道为什么要这么做,webservice它不香吗…还能实时返回调用结果…难道他们不会用?…那句俗话,乳香随俗吧。 现在自己电脑上搭了个ftp服务器,然后网上找了段轮子当demo,一测,还挺好使。就继续写业务逻辑了。 结果等他们给提供了ftp服务器地址之后,怎么连也连不上。然后给他们发了封邮件,过了两天回过来消息。说FTPClient不行

花泽木 2万+

Mediatek NeuroPilot Yolov8量化

【代码】Mediatek NeuroPilot Yolov8模型转化。

sdrgtywretyeruet的专栏 345

SSLHandshakeException: Remote host closed connection during handshake异常处理

请求第三方https接口出现SSLHandshakeException: Remote host closed connection during handshake问题,本地正常,服务器异常。原因是服务器jdk版本是jdk1.8_40。现阶段找到三个方案,第一个是jdk1.8_151版本 添加或者修改Java\jre\lib\security\java.security。第二个直接替换jdk版本到jdk1.8_162版本,这个版本直接默认这个配置的。第三个就是用jdk1,7的版本。

zhongzih的博客 3425

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

问题记录整理(持续更新)

常见的错误,持续记录。springboot、maven、npm、docker等

帷幄庸者的博客 5104

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

windows系统IIS服务器微信小程序、SSL证书、开启服务器TSL1.0、TSL1.1、TSL1.2服务

看到这个标题的你一定很无语,“这什么跟什么嘛。”,其实这是我这几天折腾微信小程序给我们公司网站安装ssl证书遇到的各种问题,好的来我们进入正题: 由于小程序的接口要求https协议,我们需要先申请一个SSL证书。我知道的有赛门铁克、腾讯云有免费的ssl证书。(我是用的腾讯的)腾讯的免费有效期是一年,赛门铁克不知道,到期了自己看着办。好像新浪云也有免费的。(中国人就是喜欢免费的东西,嘿嘿)。 申

小龙的博客 2万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

1.2spring mvc

在controller中写了有关于请求 相应对象的相关方法 分别是 请求方式默认为get 请求路径 请求头的信息 由于请求头信息很多用了一个枚举类 键为请求行的名字 值为名字对应的信息 请求对象从页面获取的指定参数 用简单的封装方式来处理 客户端传来这条分页请求的语句 服务器应该怎么处理 客户端传来的请求?后所带的参数 1.mapping中有很多可以限制的东西 比如这条限制了只能ge...

ss123mlk的博客 198

解决Remote host terminated the handshake: SSL peer shut down incorrectly -> [Help 1]问题

【代码】解决Remote host terminated the handshake: SSL peer shut down incorrectly -> [Help 1]问题。

petCs的博客 925

Remote host closed connection during handshake和SSL peer shut down incorrectly报错的解决方法

Caused by: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:882) at com.sun.net.s

3万+

Macos jdk ssl javax.net.ssl.SSLHandshakeException完美解决

Macos jdk ssl javax.net.ssl.SSLHandshakeException完美解决

Aletenze的专栏 8175

javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake

http client 证书双向认证 javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake

qq_42465155的博客 1万+
上一篇: com.rabbitmq.client.AlreadyClosedException: clean connection shutdown; reason: Attempt to use closed
下一篇: SpringBoot系列0-开始
freewind
博客等级 码龄16年 136粉丝 108原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值