一、安装时启动SSL
[root@linux-node local]# /usr/local/mysql5.7/bin/mysqld --initialize --basedir=/usr/local/mysql5.7 --datadir=/usr/local/mysql5.7/data/ --user=mysql
[root@linux-node local]# /usr/local/mysql5.7/bin/mysql_ssl_rsa_setup
当运行完这个命令后,默认会在data(数据)目录下生成以下pem文件,这些文件就是用于启用SSL功能的
[root@linux-node local]# ll /usr/local/mysql5.7/data/*.pem
-rw-------. 1 /usr/local/mysql5.7/data/ca-key.pem #CA私钥
-rw-r--r--. 1 /usr/local/mysql5.7/data/ca.pem #自签CA证书,客户端连接也需要提供
-rw-r--r--. 1 /usr/local/mysql5.7/data/client-cert.pem #客户端连接服务器端需要提供的证书文件
-rw-------. 1 /usr/local/mysql5.7/data/client-key.pem #客户端连接服务器端需要提供的私钥文件
-rw-------. 1 /usr/local/mysql5.7/data/private_key.pem #私钥/公钥对的私有成员
-rw-r--r--. 1 /usr/local/mysql5.7/data/public_key.pem #私钥/公钥对的共有成员
-rw-r--r--. 1 /usr/local/mysql5.7/data/server-cert.pem #服务器端证书文件
-rw-------. 1 /usr/local/mysql5.7/data/server-key.pem #服务器端私钥文件
在配置文件中指定ssl证书路径
ssl-ca=/usr/local/mysql5.7/data/ca.pem
ssl-cert=/usr/local/mysql5.7/data/server-cert.pem
ssl-key=/usr/local/mysql5.7/data/server-key.pem
二、进入数据库查看
1、查看变量值
mysql> show global variables like \'%ssl%\';
2、查看 test用户的连接方式
mysql>\s;
3、如果用户是采用本地localhost或者sock连接数据库,那么不会使用SSL方式了
三、如果安装MySQL5.7时没有运行过mysql_ssl_rsa_setup,那么如何开启SSL
1、关闭MySQL服务
2、运行mysql_ssl_rsa_setup 命令
3、到data_dir目录下修改.pem文件的所属权限用户为mysql chown -R mysql.mysql *.pem
4、启动MySQL服务
四、强制某用户必须使用SSL连接数据库
#更改已经存在用户
mysql> alter mysql.user test@\'%\' require ssl;
#新建必须使用ssl用户
mysql> grant all on *.* to \'slave\'@\'192.168.133.1\' identified by \'ASDF123asdf\' require ssl;
mysql> flush privileges;
对于强制使用SSL连接的用户,如果不是使用ssl连接的就会报错
[root@linux-node ~]# mysql -uslave -pASDF123asdf -h 192.168.133.1 --ssl=0 #不启用ssl连接
[root@linux-node ~]# mysql -uslave -pASDF123asdf -h 192.168.133.1 [--ssl-ca=/usr/local/mysql5.7/data/ca.pem] #启用ssl连接
五 、错误提示(Error)
六JDBC客户端的解决方法
连接字符串url中加入ssl=true或false:
url=jdbc:mysql://127.0.0.1:3306/framework?characterEncoding=utf8&useSSL=true
--------------------- 本文来自 幸福丶如此 的**** 博客 ,全文地址请点击:https://blog.****.net/m0_37886429/article/details/79077487?utm_source=copy