码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MySQL5.7之SSL/TLS加密连接配置


    运维必知的安全内容之TLS协议,如何选择合适的连接MySQL的TLS版本,本文将给出参考。

    目录

    1、连接MySQL服务器:使用加密选项

    2、查看MySQL支持的TLS协议版本

    3、变量tls_version使用说明

    4、启用SSL协议连接

    5、总结


    环境:

    • CentOS-7.9.2009-x86_64

    1、连接MySQL服务器:使用加密选项

    这些选项控制客户端程序如何建立与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-certFile 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 Reference Manual :: 4.2.3 连接服务器命令行选项https://dev.mysql.com/doc/refman/5.7/en/connection-options.html#option_general_tls-version

    从 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 选项。

    2、查看MySQL支持的TLS协议版本

    • 在 MySQL 5.7.28 之前,可以使用 yaSSL 作为 OpenSSL 的替代方案来编译 MySQL。
    • 从 MySQL 5.7.28 开始,删除了对 yaSSL 的支持,所有 MySQL 构建都使用 OpenSSL。
    1. mysql> SHOW GLOBAL VARIABLES LIKE 'tls_version';
    2. +---------------+-----------------------+
    3. | Variable_name | Value |
    4. +---------------+-----------------------+
    5. | tls_version | TLSv1,TLSv1.1,TLSv1.2 |
    6. +---------------+-----------------------+

    在《/etc/my.cnf》文件中的 mysqld区域,添加 tls_version参数及赋值。

    1. [mysqld]
    2. # 从 MySQL 5.7.35 开始,不推荐使用 TLSv1 和 TLSv1.1 连接协议
    3. 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)。

    MySQL 5.7 Reference Manual :: 6.3.2 加密连接 TLS 协议和密码https://dev.mysql.com/doc/refman/5.7/en/encrypted-connection-protocols-ciphers.html

    3、变量tls_version使用说明

    系统变量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 的默认值

    TLSv1,TLSv1.1,TLSv1.2(OpenSSL)

    TLSv1,TLSv1.1(yaSSL)

    MySQL 5.7 Reference Manual :: 5.1.7 服务器系统变量https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_tls_version

    注意:此变量名支持的协议,取决于用于编译 MySQL 的 SSL 库,赋值时应选择允许的协议。有关详细信息,请参阅 第 6.3.2 节,“加密连接 TLS 协议和密码”。

    4、启用SSL协议连接

    请参考以下博文 1.3 章节:

    MySQL数据库的安全策略-CSDN博客mysql 安全策略https://blog.csdn.net/q908544703/article/details/126034119

    5、总结

    启用TLS加密连接,对访问MySQL数据库的速度有一定的影响,请结合实例部署场景,决定是否启用。建议对核心数据库配置启用TLS连接。

  • 相关阅读:
    8软件工程环境
    开启自然资源管理“智绘”之路!
    Java笔记——文件操作I/O 02
    Vue.js 修饰符:精准控制组件行为
    同构字符串(简单)
    脉冲神经网络原理及应用,脉冲神经网络的优缺点
    gflg学习笔记
    Vue3基本使用
    来了~worthington组织培养术语第二弹!
    一键部署k8s集群
  • 原文地址:https://blog.csdn.net/Sn_Keys/article/details/126425869
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号