mysql5.7如何设置ssl远程登录模式

1 篇文章 0 订阅

1用root用户登录mysql客户端执行

SHOW VARIABLES LIKE '%ssl%';

Output
+---------------+----------+
| Variable_name | Value    |
+---------------+----------+
| have_openssl  | DISABLED |
| have_ssl      | DISABLED |
| ssl_ca        |          |
| ssl_capath    |          |
| ssl_cert      |          |
| ssl_cipher    |          |
| ssl_crl       |          |
| ssl_crlpath   |          |
| ssl_key       |          |
+---------------+----------+
have_openssl和have_ssl字段显示DISABLE,表示当前mysql拥有ssl的功能,但是ssl功能未默认启动.

2在mysql的bin目录下执行./mysql_ssl_rsa_setup,会在mysql的data目录下生成8个文件,

-rw------- 1 mysql mysql 1675 Mar 28 16:35 ca-key.pem             # CA 私钥
-rw-r--r-- 1 mysql mysql 1082 Mar 28 16:35 ca.pem                    # 自签的CA证书,客户端连接也需要提供
-rw-r--r-- 1 mysql mysql 1086 Mar 28 16:35 client-cert.pem        # 客户端连接服务端需要提供的证书文件
-rw------- 1 mysql mysql 1675 Mar 28 16:35 client-key.pem         #客户端连接服务端需要提供的私钥文件
-rw------- 1 mysql mysql 1679 Mar 28 16:35 private_key.pem      #私钥公钥的私有成员
-rw-r--r-- 1 mysql mysql  451 Mar 28 16:35 public_key.pem        #私钥公钥的共有成员
-rw-r--r-- 1 mysql mysql 1086 Mar 28 16:35 server-cert.pem       #服务端证书文件
-rw------- 1 mysql mysql 1679 Mar 28 16:35 server-key.pem       #服务端私钥文件

然后在/etc/my.cnf配置(路径按照自己的)

 vim /etc/my.cnf
#ssl
ssl-ca=/data/database/mysql/ca.pem
ssl-cert=/data/database/mysql/server-cert.pem
ssl-key=/data/database/mysql/server-key.pem

3

目前,MySQL服务器配置为接受来自客户端的SSL连接。 但是,如果客户端请求,它仍然允许未加密的连接。

我们可以通过打开require_secure_transport选项来解决这个问题。 这需要所有连接都使用SSL或本地Unix套接字。 由于只能从服务器本身访问Unix套接字,因此对远程用户开放的唯一连接选项将使用SSL

默认情况下,MySQL被配置为仅监听源自本地计算机的连接。 要配置它监听远程连接,我们可以将bind-address设置为不同的接口。

为了允许MySQL在其任何接口上接受连接,我们可以将bind-address设置为“0.0.0.0”,所以需要在my.cnf中配置

首先创建一个[mysqld]节来定位MySQL服务器进程,在下面增加配置

[mysqld]
# Require clients to connect either using SSL
# or through a local socket file
require_secure_transport = ON
bind-address = 0.0.0.0

保存并在完成后关闭文件。

接下来,重新启动MySQL以应用新设置。

5然后创建远程用户强制使用ssl登录

CREATE USER 'user'@'%' IDENTIFIED BY 'ssl123' REQUIRE SSL;

FLUSH PRIVILEGES;

然后登录时使用

./mysql --ssl-ca=/usr/local/mysql/data/ca.pem --ssl-cert=/usr/local/mysql/data/client-cert.pem --ssl-key=/usr/local/mysql/data/client-key.pem -u user -p然后输入密码登录,此时这个用户必须使用当前方式登录,如果想要在本地使用workbnech远程访问需要把客户端的三个证书导到本地,配置一下就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值