今天,在CentOS7+JDK1.8.0_302+Mysql5.7+Tomcat8.5上部署项目时,出现了奇怪的问题。
启动tomcat时,提示数据库连接池初始化错误,向下看,错误指向:
Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
一看是SSL,我之前有过配置数据库连接URL时,要加&useSSL=true的经历,于是加上,发现还是不对,还是提示这个错误,去网上百度,多说修改java.security文件的,我不想修改这个文件,但是始终找不到别的办法,最终修改了这个文件,然后再次重启,发现错误变成了:
javax.net.ssl.sslhandshakeexception: pkix path building failed
这实在不是我能理解的,百度这个错误,明显感觉离正确道路越来越远。
于是,终于搜到了这篇文章:
https://www.jianshu.com/p/611c78f68469
将连接数据库的URL加上 &useSSL=false即可。
大约之前的jdk版本连接mysql时默认useSSL=false,而高版本的jdk连接mysql时默认useSSL=true,所以需要显示指定useSSL=false。
不过也有一点比较迷茫,原来配置项目的时候,mysql有强制使用useSSL=true的,也就是不用useSSL=true会出现连接错误。那如果需要强制使用useSSL=true呢,这个问题该如何解决呢?