关于MySQL8.0数据库的SSL连接设置

MySQL数据库环境:
MySQL 8.0.26 MySQL Community Server - GPL  单实例


1、安装初始化mysql数据库:

在datadir目录下有相关的SSL证书文件,如果没有则创建之:
/usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/data/mysql/pemtmp --uid=mysql

2、配置文件:
vi my.cnf
[mysql]
ssl-ca = /data/mysql/pemtmp/ca.pem
ssl-cert = /data/mysql/pemtmp/client-cert.pem
ssl-key = /data/mysql/pemtmp/client-key.pem
[mysqld]
require_secure_transport = ON
ssl-ca = /data/mysql/pemtmp/ca.pem
ssl-cert = /data/mysql/pemtmp/server-cert.pem
ssl-key = /data/mysql/pemtmp/server-key.pem

3、创建用户并指定ssl:
create user yqg@'%' identified with mysql_native_password by 'qaz123';
alter user 'yqg'@'%' require ssl;
grant all privileges on *.* to 'yqg'@'%';
flush privileges;

4、验证:
mysql -h172.17.139.155 -P3306 -uyqg -p'qaz123'
mysql> \s
SSL:                    Cipher in use is TLS_AES_256_GCM_SHA384

5、测试总结:
移除datadir目录下的ssl相关证书文件,数据库也可正常启动。
5.1> 是“require ssl”用户无法访问数据库:
mysql -h172.17.139.155 -P3306 -uyqg -p'qaz123'  
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'yqg'@'172.17.135.234' (using password: YES)

5.2> 无“require ssl”的用户无法访问数据库:
mysql -h172.17.139.155 -P3306 -usqg -p'qaz123'  
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 3159 (HY000): Connections using insecure transport are prohibited while --require_secure_transport=ON.
5.3> 如果去掉my.cnf文件中的require_secure_transport=ON:
是“require ssl”用户无法访问数据库
无“require ssl”的用户可以访问数据库

6、附录

证书文件:
ca-key.pem # CA私钥
ca.pem # 自签的CA证书,客户端连接也需要提供
client-cert.pem # 客户端连接服务器端需要提供的证书文件
client-key.pem # 客户端连接服务器端需要提供的私钥文件
private_key.pem # 私钥/公钥对的私有成员
public_key.pem # 私钥/公钥对的共有成员
server-cert.pem # 服务器端证书文件
server-key.pem # 服务器端私钥文件


MySQL查看ssl配置以生效及相关信息:
show global variables like '%ssl%';
have_ssl                            | YES
MySQL查看ssl证书的有效时间:
SHOW STATUS LIKE 'Ssl_server_not%';

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值