javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) at sun.security.ssl.Handshaker.activate(Handshaker.java:529) at sun.security.ssl.SSLSocketImpl.kickstartHandshake(SSLSocketImpl.java:1492) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1361) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)
报错原因:jdk1.8中某些版本导致SSL调用权限出现异常,对应版本的加密套件"SSLv3,TLSv1,TLSv1.1"不再认为是安全的
解决:1.最简单方法:在db.properties文件中的url后加上&useSSL = false
例如:
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/shop?useSSL=false&characterEncoding=utf-8&serverTimezone=UTC jdbc.username=root jdbc.password=root 2.修改java.security文件(不建议使用)
Linux(服务器上):
(1).找到java.security文件位置
find -name java.security
注:进行修改,使用Xftp比较方便
(2).Windows:找到jdk 1.8安装目录,找到C:\Program Files\Java\jre里面的lib\security 下面有个java.security。找到对应的SSLv3,删除掉,重启项目就好了。(删掉SSLv3就是允许SSL调用)