MySQL配置SSL加密连接

环境:

OS:centos7
MySQL: 5.7.33

一、MySQL开启ssl连接支持

查看是否开启

登录MySQL,运行如下命令:

SHOW VARIABLES LIKE '%ssl%';

如下图,表示已开启支持
在这里插入图片描述

开启ssl连接支持

若未开启,通过以下步骤:

  • 关闭MySQL服务
  • 运行如下命令:
    mysql_ssl_rsa_setup –-data-dir=/data/mysql-ssl --uid=mysql
    其中:–-data-dir:指定证书和密钥存放位置;–uid:指定所属用户
  • 查看生成的密钥和证书
    在这里插入图片描述

二、MySQL配置文件

  • 强制ssl验证
    在[mysqld]下添加如下代码:
    require_secure_transport = ON
  • 指定服务端密钥和证书路径
    在[mysqld]下添加如下代码:
    ssl-ca = /data/mysql-ssl/ca.pem
    ssl-cert = /data/mysql-ssl/server-cert.pem
    ssl-key = /data/mysql-ssl/server-key.pem
  • 指定客户端密钥和证书路径
    在[client]下添加如下代码:
    ssl-ca = /data/mysql-ssl/ca.pem
    ssl-cert = /data/mysql-ssl/client-cert.pem
    ssl-key = /data/mysql-ssl/client-key.pem

三、配置用户ssl连接

首先登录mysql

  • 已存在用户
ALTER USER 'root'@'19.130.%' REQUIRE SSL;
FLUSH PRIVILEGES;
  • 新建用户
GRANT ALL PRIVILEGES ON *.* TO 'ssl_test'@'%' IDENTIFIED BY 'ssl_test' REQUIRE SSL;
FLUSH PRIVILEGES;

四、远程连接配置

(一)Linux中命令行连接

1、从MySQL服务器下载客户端证书到本地

ca.pem, client-key.pen, client-cert.pem

2、命令行登录

命令行登录又两种方式,都需要解决密钥和证书的使用问题。

(1)命令行中指定密钥和证书路径
mysql --ssl-ca=/data/mysql3307/data/ca.pem --ssl-cert=/data/mysql3307/data/client-cert.pem --ssl-key=/data/mysql3307/data/client-key.pem -uroot -p
(2)配置文件中指定密钥和证书路径,命令行无需再指定,此方法更方便

在当前用户的根目录(cd ~)下创建./my.cnf文件(隐藏文件),添加如下内容:

		[client]
		ssl-ca = /data/mysql3307/data/ca.pem
		ssl-cert = /data/mysql3307/data/client-cert.pem
		ssl-key = /data/mysql3307/data/client-key.pem

登录命令会自行调用配置文件中的参数。

(二)windows中Navicat连接

1、从MySQL服务器下载客户端证书到本地

ca.pem, client-key.pen, client-cert.pem

2、navicate开启ssl连接,并配置证书和密钥

在这里插入图片描述
注:navicat请使用15.0版本

(三)java连接

在url中添加 useSSL=true 参数

jdbc:mysql://Your ip:Your Port/Database?serverTimezone=Asia/Shanghai&useSSL=true&characterEncoding=UTF-8
  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值