[技术干货] Mysql配置ssl证书

[复制链接]
乐维 发表于 2020-4-30 18:35:03 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

本环境基于mysql5.6配置,通过openssl生成证书进行配置
一、确认环境信息
1、查看数据库版本
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.6.36    |
+-----------+
2、查看数据库是否支持ssl配置
mysql> show variables like 'have%ssl%';
+---------------+----------+
| Variable_name | Value    |
+---------------+----------+
| have_openssl  | DISABLED |
| have_ssl      | DISABLED |
+---------------+----------+
2 rows in set (0.00 sec)
3、查看数据库端口号
mysql> show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.00 sec)
4、查看数据库数据存放路径
mysql> show variables like 'datadir';
+---------------+-------------------+
| Variable_name | Value             |
+---------------+-------------------+
| datadir       | /data/mysql/data/ |
+---------------+-------------------+
1 row in set (0.00 sec)
二、证书配置
通过openssl 制作生成 SSL 证书(有效期99999)
1、生成一个 CA 私钥
[root@itop ~]#openssl genrsa 2048 > ca-key.pem
1.png
2、通过 CA 私钥生成数字证书
[root@itop ~]# openssl req -new -x509 -nodes -days 99999 -key ca-key.pem -out ca.pem
2.png
3、创建 MySQL 服务器 私钥和请求证书
[root@itop ~]# openssl req -newkey rsa:2048 -days 99999 -nodes -keyout server-key.pem -out server-req.pem
3.png

4、将生成的私钥转换为 RSA 私钥文件格式
[root@itop ~]# openssl rsa -in server-key.pem -out server-key.pem
4.png
5、用CA 证书来生成一个服务器端的数字证书
[root@itop ~]# openssl x509 -req -in server-req.pem -days 99999 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
5.png
6、创建客户端的 RSA 私钥和数字证书
[root@itop ~]# openssl req -newkey rsa:2048 -days 99999 -nodes -keyout client-key.pem -out client-req.pem
6.png
7、将生成的私钥转换为 RSA 私钥文件格式
[root@itop ~]# openssl rsa -in client-key.pem -out client-key.pem
7.png
8、用CA 证书来生成一个客户端的数字证书
[root@itop ~]# openssl x509 -req -in client-req.pem -days 99999 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
8.png
9、查看所有生成的SSL文件
[root@itop ~]# ll *.pem
9.png
三、数据库配置SSL证书
1、复制 CA 证书和服务端SSL文件至MySQL 数据目录
[root@itop ~]# cp ca.pem server-*.pem /data/mysql/data –v
10.png
2、修改 MySQL 数据目录的CA 证书和服务端 SSL 文件所属用户与组
[root@itop ~]# chown -v mysql.mysql /data/mysql/data/{ca,server*}.pem
11.png
3、修改MYSQL配置文件,添加SSL调用配置【/etc/my.cnf】
vi /etc/my.cnf
12.png
4、重启MYSQL服务,并检查数据库SSL是否开启状态
注:have_openssl 与 have_ssl 值都为YES表示ssl开启成功
[root@itop ~]#  /etc/init.d/mysqld restart
13.png
mysql> show variables like 'have%ssl%';
14.png
四、测试SSL可用性
1、创建用户并指定SSL连接
mysql> grant all on *.* to 'test'@'%' identified by 'p@ssw0rd' require SSL;
15.png
2、通过密码连接测试
[root@itop ~]# mysql -utest -pp@ssw0rd -h 192.168.1.110
16.png
3、通过客户端密钥与证书SSL + 密码连接测试,并查看属性
[root@itop ~]# mysql -utest -pp@ssw0rd -h 192.168.1.110 --ssl-cert=client-cert.pem --ssl-key=client-key.pem
17.png
mysql> \s
18.png

技术交流欢迎加入Q群:177428068





上一篇:Kickstart实现自动化部署系统
下一篇:Zabbix负载判断与调整配置参数
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝0

帖子176

发布主题

乐维社区

微信公众号

版权所有 © 2016-2019 九一乐维丨粤ICP备17007026号