web项目连接数据库出现以下错误:
Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
SSL
SSL(Secure Sockets Layer) 安全套接层,它主要用来保证网络通信中数组安全以及数据完整性的一种协议,工作在传输层与应用层之间。
SSL内部可以分为2层:SSL记录协议和SSL握手协议。
SSL记录协议
建立在可靠的传输层协议(比如TCP)上,一方面它会对应用层的消息请求进行加密和压缩,保证网络传输中数据的安全性和减少网络流量;另一方面它会对接受到传输层的报文信息进行解密和解压缩,以方便应用层更好的使用发送方的消息。
SSL握手协议
可以类比TCP三次握手进行学习,TCP三次握手是为了建立可靠的连接。而SSL握手则是为了认证用户和服务器,确保数据发送到正确的接收方。主要进行身份验证,协商加密算法和交换加密密匙。
解决
因为SSL是为了保证通信双方的安全通信,避免被第三方获取或窃听而存在的。鉴于本次开发数据库服务器是部署在本地,不存在网络中通信,所以我们可以配置数据源时对数据库的url进行以下设置:
jdbc:mysql://localhost:3306/wenda?useSSL=false
正因为报之前那个错误是我们在配置url未指定是否采用SSL,而高版本的MySQL会采用默认的SSL策略。Spring检测出当前应用并未配置SSL证书,所以给出警告要么不采用SSL,要么设置SSL并为应用提供SSL证书。