MYSQL实现SSL的流程
- 先为MYSQL服务器创建SSL证书和私钥
- 在MYQL里面配置SSL,并启动服务
- 创建用户的时候带上SSL标签(require ssl)
- 连接数据库的时候带上SSL
MYSQL配置SSl
- 手工配置:mysql5.7.6以下版本只能手工配置
- 自动配置:mysql5.7.6以上版本支持自动配置
0、SSL策略
--ssl-mode
是 MySQL 命令行客户端的一个选项,用于指定 SSL/TLS 连接的模式。
它有四个可能的值:
DISABLED
:禁用 SSL
REQUIRED
:必须使用 SSL
VERIFY_CA
:验证CA
VERIFY_IDENTITY
:验证身份
在连接到远程 MySQL 服务器时,需要保护敏感信息和数据的安全性,因此应使用 SSL 来加密通信。
而为了提供最高级别的信任和安全性
,应将--ssl-mode
设置为REQUIRED
。
--ssl-mode REQUIRED
是MySQL8
中最高安全级别
,它要求客户端必须使用加密 SSL/TLS
连接到服务器,并验证服务器的身份。
而 --ssl-mode VERIFY_IDENTITY
不强制要求加密 SSL/TLS
连接,它仅检查并验证服务器证书
,因此不如 --ssl-mode REQUIRED 安全
。
这意味着 MySQL 客户端将试图建立 SSL 连接,并且如果无法建立 SSL 连接,则不会连接到 MySQL 服务器,从而确保只有通过 SSL 连接才能访问数据库。
详细解释如下:
REQUIRED
要求所有 MySQL 客户端必须通过 TLS 密码套件建立与数据库服务器之间的连接,以提供最高级别
的信任和安全性
。。VERIFY_IDENTITY
选项要求 MySQL 客户端验证数据库服务器的身份,并持有与其授予一致的主机名或 IP 地址。但如果数据库服务器使用自签名证书,则可能会由于无法在公钥基础架构中下载到 CRL 和 OCSP 响应而交予妥协项,从而使校验变得不安全。PREFERRED
标志允许客户端建议并尝试进行 SSL 连接,但不需要建立 SSL 连接。如果 MySQL 客户端请求未加密连接时,服务器会回答该请求。VERIFY_CA
在服务器端上对客户端启用 SSL 协议,并确保 SSL 连接是在根证书颁发机构的颁发证书上建立的,而且客户端提供了匹配考验的专业证书,非常适合客户端软件的验信标准很高或者要求传输数据增强保护的情况。
1、创建证书
安装openssl依赖包
dnf install -y openssl