赞
踩
运维必知的安全内容之TLS协议,如何选择合适的连接MySQL的TLS版本,本文将给出参考。
目录
环境:
这些选项控制客户端程序如何建立与MySQL服务器的连接以及连接是否加密。
名称 | 描述 | 引入版本 |
---|---|---|
--get-server-public-key | Request RSA public key from server 译:从服务器请求 RSA 公钥 | 5.7.23 |
--server-public-key-path | Path name to file containing RSA public key 译:包含 RSA 公钥的文件的路径名 | |
--skip-ssl | Disable connection encryption 译:禁用连接加密 | |
--ssl | Enable connection encryption 译:启用连接加密 | |
--ssl-ca | File that contains list of trusted SSL Certificate Authorities 译:包含受信任 SSL 证书颁发机构列表的文件 | |
--ssl-capath | Directory that contains trusted SSL Certificate Authority certificate files 译:包含受信任的 SSL 证书颁发机构证书文件的目录 | |
--ssl-cert | File that contains X.509 certificate 译:包含 X.509 证书的文件 | |
--ssl-cipher | Permissible ciphers for connection encryption 译:连接加密的允许密码 | |
--ssl-crl | File that contains certificate revocation lists 译:包含证书吊销列表的文件 | |
--ssl-crlpath | Directory that contains certificate revocation-list files 译:包含证书吊销列表文件的目录 | |
--ssl-key | File that contains X.509 key 译:包含 X.509 密钥的文件 | |
--ssl-mode | Desired security state of connection to server 译:连接到服务器的所需安全状态 | 5.7.11 |
--ssl-verify-server-cert | Verify host name against server certificate Common Name identity 译:根据服务器证书公用名身份验证主机名 | |
--tls-version | Permissible TLS protocols for encrypted connections 译:加密连接的允许 TLS 协议 | 5.7.10 |
从 MySQL 5.7.11 开始不推荐 客户端使用 --ssl 选项,并且 --ssl 在 MySQL 8.0 中删除。对于 客户端程序 请改用 --ssl-mode:
- 使用 --ssl-mode=REQUIRED 代替 --ssl=1 或 --enable-ssl
- 使用 --ssl-mode=DISABLED 代替 --ssl=0 或 --skip-ssl 或 --disable-ssl
- 无显式 --ssl-mode 选项等同于无显式 --ssl 选项
不推荐服务器端使用 --ssl 选项。
- mysql> SHOW GLOBAL VARIABLES LIKE 'tls_version';
- +---------------+-----------------------+
- | Variable_name | Value |
- +---------------+-----------------------+
- | tls_version | TLSv1,TLSv1.1,TLSv1.2 |
- +---------------+-----------------------+
在《/etc/my.cnf》文件中的 mysqld区域,添加 tls_version参数及赋值。
- [mysqld]
- # 从 MySQL 5.7.35 开始,不推荐使用 TLSv1 和 TLSv1.1 连接协议
- tls_version=TLSv1.1,TLSv1.2
建议使用更安全的 TLSv1.2 和 TLSv1.3 协议进行连接,TLSv1.3 要求 MySQL 服务器和客户端应用程序都使用 OpenSSL 1.1.1 或更高版本进行编译。
注意:从 MySQL 5.7.35 开始,不推荐使用 TLSv1 和 TLSv1.1 连接协议,并且对它们的支持可能会在未来的 MySQL 版本中被删除(请参阅 IETF 备忘录 Deprecating TLSv1.0 and TLSv1.1)。
系统变量tls_version指定服务器允许哪些协议用于加密连接。
值是一个逗号分隔的列表,可以包含一个或多个协议版本。
命令行格式 | --tls-version=protocol_list |
---|---|
引入版本 | 5.7.10 |
系统变量 | tls_version |
范围 | Global |
动态 | No |
类型 | String |
MySQL版本 ≥ 5.7.28 的默认值 | TLSv1,TLSv1.1,TLSv1.2 |
MySQL版本 ≤ 5.7.27 的默认值 |
|
注意:此变量名支持的协议,取决于用于编译 MySQL 的 SSL 库,赋值时应选择允许的协议。有关详细信息,请参阅 第 6.3.2 节,“加密连接 TLS 协议和密码”。
请参考以下博文 1.3 章节:
MySQL数据库的安全策略-CSDN博客mysql 安全策略https://blog.csdn.net/q908544703/article/details/126034119
启用TLS加密连接,对访问MySQL数据库的速度有一定的影响,请结合实例部署场景,决定是否启用。建议对核心数据库配置启用TLS连接。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。