Mysql之加密连接mysql_ssl_rsa_setup
mysql5.7之前的版本是不提供ssl安全连接的,其在网络中数据都是以明文进行传输的。mysql_ssl_rsa_setup程序用于创建 SSL 证书和密钥文件以及 RSA 密钥对文件,以支持使用 SSL 的安全连接和使用 RSA 通过未加密连接的安全密码交换(如果这些文件丢失)。 如果现有的 SSL 文件已经过期,mysql_ssl_rsa_setup也可用于创建新的 SSL 文件。MySQL
一、mysql_ssl_rsa_setup简介
mysql5.7之前的版本是不提供ssl安全连接的,其在网络中数据都是以明文进行传输的。mysql_ssl_rsa_setup程序用于创建 SSL 证书和密钥文件以及 RSA 密钥对文件,以支持使用 SSL 的安全连接和使用 RSA 通过未加密连接的安全密码交换(如果这些文件丢失)。 如果现有的 SSL 文件已经过期,mysql_ssl_rsa_setup也可用于创建新的 SSL 文件。MySQL5.7默认是开启SSL连接,如果强制用户使用SSL连接,那么应用程序的配置也需要明确指定SSL相关参数,否则程序会报错。
环境说明:如下命令示例mysql版本为5.7.32。
二、加密连接配置和使用
1、检查是否启用了ssl安全连接
mysql> show variables like ‘%ssl%’;
2、创建证书及密钥
#执行创建证书命令前先停止msyql实例
[wuhs@s145 mysql5.7]$ ./bin/mysql_ssl_rsa_setup --datadir=/home/wuhs/data --verbose
3、查看证书和密钥文件清单
[wuhs@s145 data]$ ll *.pem
-rw-------. 1 wuhs wuhs 1679 Dec 24 14:50 ca-key.pem
-rw-r–r--. 1 wuhs wuhs 1107 Dec 24 14:50 ca.pem
-rw-r–r--. 1 wuhs wuhs 1107 Dec 24 14:50 client-cert.pem
-rw-------. 1 wuhs wuhs 1675 Dec 24 14:50 client-key.pem
-rw-------. 1 wuhs wuhs 1675 Dec 24 14:50 private_key.pem
-rw-r–r--. 1 wuhs wuhs 451 Dec 24 14:50 public_key.pem
-rw-r–r--. 1 wuhs wuhs 1107 Dec 24 14:50 server-cert.pem
-rw-------. 1 wuhs wuhs 1675 Dec 24 14:50 server-key.pem
4、创建一个要求ssl连接的用户
#强制用户使用ssl连接登录时加上选项REQUIRE SSL
mysql> create user ‘test’@’%’ identified by ‘test@1234’ REQUIRE SSL;
Query OK, 0 rows affected (0.00 sec)
5、客户端连接测试
通过Navicat客户端连接测试,必须勾选ssl才可以连接成功
6、DBA账户本地登录测试
#root账户没有配置强制ssl登录,默认使用ssl登录
三、mysql_ssl_rsa_setup命令简介
1、使用语法
mysql_ssl_rsa_setup [options]
#典型的选项是 --datadir指定创建文件的位置,以及 --verbose查看mysql_ssl_rsa_setup执行的 openssl命令 。
2、参数说明
参数选项 | 参数说明 |
---|---|
-d, --datadir=name | 数据目录路径 |
-?, --help | 显示帮助信息并退出 |
-s, --suffix=name X.509 | 证书通用名称属性的后缀 |
–uid=name | 用于文件权限的有效用户的名称 |
-v, --verbose | 详细模式 |
-V, --version | 显示版本信息并退出 |
3、生成文件清单及说明
证书文件 | 文件说明 |
---|---|
ca-key.pem | CA私钥 |
ca.pem | 自签的CA证书,客户端连接也需要提供 |
client-cert.pem | 客户端连接服务器端需要提供的证书文件 |
client-key.pem | 客户端连接服务器端需要提供的私钥文件 |
private_key.pem | 私钥/公钥对的私有成员 |
public_key.pem | 私钥/公钥对的共有成员 |
server-cert.pem | 服务器端证书文件 |
server-key.pem | 服务器端私钥文件 |
4、ssl-mode模式说明
- 在没有–ssl-mode选项的情况下 ,客户端尝试使用加密进行连接,如果无法建立加密连接,则回退到未加密的连接。这也是具有显式–ssl-mode=PREFFERED选项的行为 。
- 使用–ssl-mode=REQUIRED,客户端需要加密连接,如果无法建立连接则失败。
- 使用–ssl-mode=DISABLED,客户端使用未加密的连接。
- 使用–ssl-mode=VERIFY_CA或 --ssl-mode=VERIFY_IDENTITY,客户端需要加密连接,并且还针对服务器 CA 证书和(使用 VERIFY_IDENTITY)针对其证书中的服务器主机名执行验证。
更多推荐
所有评论(0)