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

问题

前两天一个学弟在群里面问一个问题:

请问一下用阿里云服务器发送https请求为什么会失败,是需要有些其他什么配置吗?
同样的代码本地可以访问https接口,服务器不行,而且服务器可以访问http接口。
用的HttpsURLConnection

觉得挺有意思,就叫他把请求的URL给一下,然后我在机器上用curl命令测试了一把:
这里写图片描述

发现报了与ssl有关的错误,我推测可能与https证书有关。
但是他的代码和服务器我都接触不到,只好叫他把catalina.out里面的日志给我看下。

果然在日志里面发现了一个与ssl相关的Exception:

javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1002)
    ... more
Caused by: java.io.EOFException: SSL peer shut down incorrectly
    at sun.security.ssl.InputRecord.read(InputRecord.java:505)
    ... more 

原因

ok,找到Exception就好办了,拿着错误信息上百度搜一下解决方法就有了~

网上说的是TLS版本的问题,jdk1.7默认的TLS版本是1.0,将TLS版本改成1.1或者1.2就好了

解决方法

有人在Stack Overflow提了相同的问题,并且大牛们也给了相应的解决方案:
javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake during web service communicaiton

延伸阅读:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值