Mysql之加密连接mysql_ssl_rsa_setup
一、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)针对其证书中的服务器主机名执行验证。
相关文章
- MySQL启用Log记录技术深度剖析(mysql开启log)
- MySQL Variables slow_query_log 数据库 参数变量解释及正确配置使用
- MySQL内连接: 掌握精彩内容(mysql内连接)
- MySQL连接查询:简单、快速、有效(mysql连接查询语句)
- 连接数据库Shell使用MySQL连接数据库的简单方法(shell通过mysql)
- MySQL函数编码:增强数据处理能力(mysql函数编码)
- MySQL数据库连接指南:简单快速连接数据库!(mysql数据库如何连接)
- MySQL 数据库误删除恢复:重新开始(mysql数据库误删恢复)
- 「MySQL对接」:数据库的无缝连接和数据交换(mysql对接)
- MySQL数据迁移——高效方案探究(mysql数据迁移方案)
- 使用PDO驱动快速查询MySQL数据库(pdo连接mysql查询)
- 从远处登录MySQL:建立远程连接的指南(如何远程登录mysql)
- 了解MySQL连接工具,轻松管理多个数据库(mysql的连接工具)
- 高效实现并发插入——MySQL的秘密武器(mysql并发插入)
- 如何解决MySQL连接不到数据库的问题?(mysql连接不到数据库)
- MySQL远程连接创建数据库实战指南(mysql远程创建数据库)
- Mysql中数据库的内连接与外连接应用(mysql内连接和外连接)
- MySQL存储过程给变量赋值实践(存储过程mysql赋值)
- MySQL表修改语句详解(mysql 中修改表语句)
- 解决方法如何判断MySQL个数大于2,避免数据异常(mysql 个数大于2)
- 从中心连接MySQL一个枢纽点(center mysql)
- ASP转换MySQL掌握数据库迁移技术(asp转换为mysql)
- ACC转换MySQL一步一步打开数据库之门(acc转化mysql)
- 活动连接用CMD查看MySQL活动连接情况(cmd产看mysql的)
- 2003年MySQL服务器配置指南(2003 mysql配置)
- 使用CMD实现本地MySQL连接(cmd连接本地mysql)
- MySQL三种不同储存引擎概述(mysql三种储存引擎)
- MySQL不支持哪种连接25字告诉你答案(mysql不支持哪种连接)
- MySQL数据库不支持CAST函数,如何实现类型转换(mysql不支持cast)