今天开发的小伙伴遇到一问题,报错内容是:
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库路径
但是,今天小伙伴遇到的问题原因都不是以上所描述的,而是由于服务器网络带宽不足导致的,升级服务器的带宽,就没有此问题发生。
开发者在生产环境中遇到SSL异常,非典型原因如JDK版本或测试工具问题,而是服务器网络带宽不足导致。解决办法是升级服务器带宽。
704

被折叠的 条评论
为什么被折叠?



