mysql5.7怎么指定ssl_mysql5.7如何设置ssl远程登录模式

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远程访问需要把客户端的三个证书导到本地,配置一下就可以了

你可能感兴趣的:(mysql5.7怎么指定ssl)