一、问题描述
在利用SpringBoot开发项目时发现控制台中报了javax.net.ssl.SSLException MESSAGE: closing inbound before receiving peer'sclose_notify的错误,但是并没有影响程序的正常运行,网络上搜索了很多种方法都没有解决了,偶然间看到一篇博客写到了解决的方法并成功解决了报错,在此进行记录。
MonSep1309:48:11CST2021WARN: Caughtwhiledisconnecting... EXCEPTIONSTACKTRACE: **BEGINNESTEDEXCEPTION**javax.net.ssl.SSLExceptionMESSAGE: closinginboundbeforereceivingpeer's close_notifySTACKTRACE: javax.net.ssl.SSLException: closinginboundbeforereceivingpeer's close_notifyatjava.base/sun.security.ssl.Alert.createSSLException(Alert.java:133) atjava.base/sun.security.ssl.Alert.createSSLException(Alert.java:117) atjava.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:356) atjava.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:312) atjava.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:303) atjava.base/sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:817) atjava.base/sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:796) atcom.mysql.cj.protocol.a.NativeProtocol.quit(NativeProtocol.java:1312) atcom.mysql.cj.NativeSession.quit(NativeSession.java:182) atcom.mysql.cj.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:1750) atcom.mysql.cj.jdbc.ConnectionImpl.close(ConnectionImpl.java:720) atcom.zaxxer.hikari.pool.PoolBase.quietlyCloseConnection(PoolBase.java:143) atcom.zaxxer.hikari.pool.HikariPool.lambda$closeConnection$1(HikariPool.java:451) atjava.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) atjava.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) atjava.base/java.lang.Thread.run(Thread.java:832) **ENDNESTEDEXCEPTION**
二、解决方法
在配置文件中数据库连接的url属性中加入useSSL=false
即可解决
yml文件格式:
##数据源配置spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/数据库名称?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=falseusername: 用户名password: 密码
二、解决方法
在配置文件中数据库连接的url属性中加入useSSL=false
即可解决
yml文件格式:
##数据源配置spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/数据库名称?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=falseusername: 用户名password: 密码
properties文件格式:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://127.0.0.1:3306/数据库名称?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=falsespring.datasource.username=用户名spring.datasource.password=密码
总结
在开发项目的过程中并未直观的感觉到SSL证书连接异常会带来什么样的后果,在查阅资料之后才发现,SSL证书的连接对网站的安全性
有着至关重要的作用,SSL证书是一种安全性高的数字证书,该证书配置在服务器上之后,能够更好的提高网站的安全性,给网站更好的安全防护。
如果SSL证书连接异常,将会带来以下的后果:(以下内容转自一位大佬的博客,仅供个人学习使用)
- 网站安全性下降:企业给网站配置SSL证书的目的就是保护网站安全,提高网站的安全性。但是一旦SSL证书连接异常,将无法起到保护网站的所用,这种情况下网站的安全性就会大大的下降。
- 信息会发生泄露:如果网站配置了SSL证书,就可以让信息加密传输,可以防止信息泄露出去。然而当SSL证书发生连接异常后,对传输的信息将起不到加密作用,这种情况下,客户端和服务器之间的信息传输就更容易被泄露出去。
以上便是javax.net.ssl.SSLException MESSAGE: closing inbound before receiving peer's close_notify
错误的解决方法以及SSL证书连接异常时会带来的影响