mysql8强制用户开启ssl_MySQL8开启ssl加密

MySQL从5.7开始默认开启SSL加密功能,进入MySQL控制台后输入status可以查看ssl的状态,出现下图表示在使用ssl:

5a871e8bade52df819827bf140600415.png

另外,ssl加密需要密钥与证书,可以使用openssl手动生成或使用mysql_ssl_rsa_setup自动生成,这里使用了mysql_ssl_rsa_setup.

下面从安装开始.

2 安装(可选)

系统CentOS,直接使用yum安装(编译安装可以看这里),先用list查看一下:

0709e42f8a09d1b25f9cd214d96b6c65.png

这里的版本是8.0.17,不算太旧,就不去官网下载了,直接install:

yum install mysql

yum install mysql-server

好了之后启动服务:

systemctl start mysqld

然后获取临时密码后修改root密码:

grep password /var/log/mysql/mysqld.log

4b2f4dbdeaa0fad69bce4c005e752047.png

这里显示密码为空,直接root登录修改密码:

mysql -u root -p

alter user root@localhost identified by ‘xxxxx

78686bda999f1563409d4a529d8af15e.png

3 生成证书与密钥

首先查看有没有开启ssl,MySQL控制台输入

show variables like ‘%ssl%‘;

361fc32a0ea74106c4fad68a9f2d259b.png

这里have_ssl显示yes,表示已经开启了,表示本地的使用了ssl连接,如果显示为no,使用MySQL自带的工具即可开启ssl:

mysqld_ssl_rsa_setup

然后默认在/var/lib/mysql下会有几个pem文件(ls查看),说明如下:

名字

描述

ca-key.pem

CA私钥

ca.pem

自签名的CA证书

client-key.pem

连接服务器提供的私钥

client-cert.pem

连接服务器需要提供的证书

server-key.pem

服务器端私钥

server-client.pem

服务器端证书

pulibc_key.pem

密钥对公钥

private_key.pem

密钥对私钥

接着重启服务:

systemctl restart mysqld

4 测试

进入服务器的MySQL控制台,新建两个测试用户,一个使用ssl,一个不使用ssl:

6fb578909d702699cb809489f4acfc44.png

然后在本机上测试,首先测试不需要ssl的用户,输入密码123456后可以直接登录:

dc2f4704275eeb6f72798132b3f5cf7e.png

然后测试需要ssl的用户:

af9a9eb61b3c687a8eab524c6bae364f.png

输入密码123456后登录不了,使用scp从服务器复制CA证书与客户端证书与私钥:

scp username@xxx.xxx.xxx.xxx:/var/lib/mysql/\{ca.pem,client-key.pem,client-cert.pem} .

然后在登录时加上

--ssl-ca=ca.pem

--ssl-cert=client-cert.pem

--ssl-key=client-key.pem

7967651f28b85f725541a93d52510bae.png

登录成功.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值