1:客户段与MySQL服务端之间,是否使用加密的连接,可以通过三个层次控制。影响范围依次缩小:
(1)服务端系统参数 require_secure_transport
开启的时候,强制要求所有客户端都是用加密连接。关闭的时候,允许加密和非加密的连接请求。默认是关闭的。
(2)创建用户的时候,使用 REQUIRE 子句,指定此用户连接数据库的时候,必须使用加密连接。例如:
create user if not exists 'user01'@'%' identified by 'user01password' REQUIRE SSL; 或者:
create user if not exists 'user02'@'%' identified by 'user02password' REQUIRE X509;
(3)客户端连接的时候,指定是否建立SSL加密连接。从5.7.11版本开始,客户端mysql提供的参数--ssl-mode,可以指定客户端连接数据库的时候,是否使用加密连接。
--ssl-mode的值 |
说明 |
DISABLED |
与服务端建立一个非加密的连接。 |
PREFERRED |
先试图与服务器端简历加密连接,如果失败,则尝试建立非加密的连接。这个是默认值。需要注意的是,如果服务端和用户都没有强制要求使用加密连接,也没有指定使用非加密连接,但是在datadir下面有可以使用的证书文件,客户端会自动去建立加密连接。 |
REQUIRED |
与服务器端建立加密连接。如果加密连接不能正常建立,则失败。不会再去尝试建立非加密连接。 |