今天开发的小伙伴遇到一问题,报错内容是:
javax.net.ssl.SSLException: Received close_notify during handshake
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
小伙伴感觉很奇怪,单元测试接口都不报错,但程序上传到服务器,远程调用偶尔报这个错误。从错误内容看,socket通信被关闭,从网上查的相关资料特别多。基本上几个方面的原因:
1)jdk的版本太低,不支持TLS协议的版本,解决方法:升级jdk版本
2)使用jmeter测试时遇到此问题,解决方法:升级jdk版本,或者按照jmeter插件
3)关于android项目grandle遇到此问题,解决方法:更换maven库路径
但是,今天小伙伴遇到的问题原因都不是以上所描述的,而是由于服务器网络带宽不足导致的,升级服务器的带宽,就没有此问题发生。