MySQL5.7之SSL/TLS加密连接配置

多种不同的 MySQL 的 SSL 配置浅谈 有一些细微的协议支持差别,比如:MySQL 只支持 TLS v1.0,默认不支持主机名验证,所以你的证书可能是给db1.example.com的,也可能是给db2.example的,浏览器则可能会用OCSP、CRL's 或 CRLsets 来验证证书是否有效。MySQL 只支持 TLS v1.0,默认不支持主机名验证,所以你的证书可能是给db1.example.com的,也可能是给db2.example的,浏览器则可能会用OCSP、CRL's 或 CRLsets 来验证证书是否有效。这就是他们最大的不同。 阅读详情
AI摘要

本文详细介绍如何在MySQL 5.7以上版本中选择合适的TLS协议版本,包括变量tls_version的设置,推荐使用TLSv1.2和TLSv1.3,以及如何通过SSL选项升级数据库连接安全性。

运维必知的安全内容之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 选项。

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

  • 在 MySQL 5.7.28 之前,可以使用 yaSSL 作为 OpenSSL 的替代方案来编译 MySQL。
  • 从 MySQL 5.7.28 开始,删除了对 yaSSL 的支持,所有 MySQL 构建都使用 OpenSSL。
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)。

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数据库的安全策略-优快云博客mysql 安全策略https://blog.youkuaiyun.com/q908544703/article/details/126034119

5、总结

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

MYSQL SSL 连接方式: 测试版本5.7, 操作系统;MAC 连接数据库判断是否支持SSL mysql> SHOW VARIABLES LIKE 'have_ssl'; +---------------+-------+| Variable_name | Value | +---------------+-------+| have_ssl | YES | +---------------+-------+1row inset (0.02sec) 判断当前数据库是否已经开启SSL show variables like '%ss... 阅读详情

相关推荐

MySQL SSL/TLS加密连接配置实战:证书生成、服务端与客户端设置及报错排查

在现代数据库运维中,网络数据传输安全已成为不可忽视的环节。SSL/TLS协议通过证书体系与加密握手,确保客户端与服务器之间的通信不被窃听或篡改。数据库连接默认常以明文传输,存在SQL语句、查询结果甚至凭据泄露的风险,尤其在混合云、跨机房等场景下更为突出。通过自建CA生成证书、配置服务端强制加密、规范客户端连接参数,能够有效满足等保合规与安全扫描要求。围绕MySQL环境,系统梳理从证书生成、服务端参数配置到JDBC、命令行等客户端连接的完整链路,并针对SSL连接报错、证书校验失败、主机名不匹配等高频问题给出排

weixin_29913663的博客 185

MySQL 的数据加密:TLS 传输加密 & InnoDB 表空间加密

随着数据安全法规的日益严格(如 GDPR、CCPA 等),保护数据库中的敏感信息变得尤为重要。在 MySQL 中,我们可以通过 **TLS 传输加密** 保护数据在网络中的安全,同时使用 **InnoDB 表空间加密** 确保磁盘上的数据安全。本文将详细介绍 **MySQL 数据加密技术**,包括 **如何启用 TLS 传输加密、如何使用 InnoDB 表空间加密**,以及 **加密最佳实践**,帮助大家构建更加安全的 MySQL 数据库环境。

2206

MySQL 5.7.44升级后SSL连接报错?手把手教你快速关闭SSL配置

本文详细解析了MySQL 5.7.44升级后常见的SSL连接报错问题,提供了快速关闭SSL配置的解决方案。通过修改MySQL配置文件并重启服务,可临时解决连接问题,同时文章也介绍了长期解决方案——正确配置SSL连接,包括生成证书、配置MySQL和使用客户端连接。适用于数据库管理员和开发人员快速排查和解决MySQL升级后的SSL连接问题。

beta5的博客 661

MySQL安全性:用户认证、防范SQL注入和SSL/TLS配置详解

MySQL安全性:用户认证、防范SQL注入和SSL/TLS配置详解

智者千虑,必有一失;愚者千虑,必有一得。 1878

MySQL 5.7.31远程连接配置指南:从基础授权到安全白名单

本文详细解析了MySQL 5.7.31远程连接配置的核心步骤与安全实践。从基础授权命令`GRANT`的使用,到防火墙与端口检查,再到生产环境必须遵循的IP白名单与最小权限原则,提供了从开发到上线的完整配置指南,确保数据库访问既便捷又安全。

weixin_29204121的博客 284

避坑指南:Prometheus监控MySQL时你一定会遇到的5个权限问题

本文详细解析了使用Prometheus监控MySQL时常见的5个权限问题,包括监控账号权限不足、SSL加密连接认证失败、密码认证插件不兼容等。通过具体错误日志分析和修复方案,帮助运维人员快速定位和解决问题,提升监控系统的稳定性和安全性。

weixin_29197699的博客 160

MySQL中的SSL/TLS加密连接是如何配置的?

请注意,具体的配置步骤可能因MySQL版本和操作系统环境的不同而有所差异。因此,在进行配置之前,请务必参考相关文档和指南以确保正确配置SSL/TLS加密连接。另外,从MySQL 5.7开始,还推荐使用更安全的TLSv1.2和TLSv1.3协议进行连接。可以在配置文件中设置。二、配置MySQL服务器以使用SSL连接。来确保使用这些更安全的协议版本进行通信。三、重启MySQL服务并测试SSL连接。一、生成SSL证书和私钥。

长风破浪会有时的博客 1407

Mysql 开启ssl连接

Mysql 开启ssl连接

Bertram的博客 1773

MySQL 5.7.31远程连接配置全攻略:从开发到生产环境的安全实践

本文深入探讨了MySQL 5.7.31在不同环境下的远程连接配置与安全实践。文章从MySQL的访问控制模型讲起,详细阐述了在开发、测试及生产环境中如何平衡效率与安全,核心在于正确配置远程访问权限,并强调了生产环境必须遵循最小权限原则,实施网络隔离、IP白名单及SSL加密等多重安全防线。

weixin_29250573的博客 145

Navicat for MySQL 10.0.11:老版本兼容性与高频故障排查指南

在数据库管理工具与MySQL服务端的版本演进中,客户端与服务端的兼容性始终是运维和开发绕不开的课题。从MySQL 5.7到8.0,认证插件、字符集和SSL策略的变化,让许多老牌工具面临连接障碍。理解这些协议层面的差异,是解决连接报错、乱码写入等问题的关键。Navicat for MySQL 10.0.11作为经典的单数据库管理工具,仍被用于维护老项目和恢复历史备份,但其对MySQL 8.0的caching_sha2_password认证插件、utf8mb4字符集及新版TLS策略支持有限。本文从连接配置、字符

weixin_33178839的博客 292

深入指南:配置MySQL的SSLTLS选项以增强数据安全

在当今的数字化时代,数据安全已成为企业和个人最为关注的问题之一。MySQL作为广泛使用的数据库管理系统,提供了SSL/TLS支持来增强数据传输过程中的安全性。通过配置SSL/TLS选项,可以确保客户端与服务器之间的通信加密,从而保护敏感数据免受中间人攻击。本文将详细介绍如何在MySQL中配置SSL/TLS选项,包括所需的步骤、最佳实践和潜在的陷阱。 在当今的数字化时代,数据安全已成为企业和个人最为关注的问题之一。MySQL作为广泛使用的数据库管理系统,提供了SSL/TLS支持来增强数据传输过程中的安全性。通过配置SSL/TLS选项,可以确保客户端与服务器之间的通信加密,从而保护敏感数据免受中间人攻击。本文将详细介绍如何在MySQL中配置SSL/TLS选项,包括所需的步骤、最佳实践和潜在的陷阱。

避坑指南:MySQL等保三级加固中最容易忽略的5个安全配置

本文深入解析MySQL等保三级加固中最易被忽视的5个安全配置盲区,包括密码策略动态管理、连接控制插件配置、SSL/TLS强制加密策略、审计日志完整方案和权限分离实战技巧。针对金融级合规要求,提供具体SQL配置示例和最佳实践,帮助DBA全面提升数据库安全防护水平。

weixin_29264201的博客 204

HHD Device Monitoring Studio:破解版在串口调试中的实战应用

本文详细介绍了HHD Device Monitoring Studio破解版在串口调试中的实战应用,包括安装指南、串口监控功能解析、Modbus RTU协议分析案例以及自定义协议解析技巧。通过具体操作步骤和性能优化建议,帮助开发者高效完成端口监控和调试任务,提升工作效率。

weixin_29268331的博客 943

等保2.0时代MySQL避坑大全:这些安全配置90%的DBA都漏掉了

本文深入剖析了在等保2.0合规要求下,MySQL数据库安全配置中常被DBA忽略的“深水区”。文章超越基础设置,聚焦于SSL/TLS双向验证、连接控制插件精准配置、审计日志防篡改、MySQL 5.7与8.0安全特性差异等关键环节,并提供实战脚本与配置方案,旨在帮助构建内生、持续、符合等保测评要求的数据安全防护体系。

weixin_29224529的博客 437

C语言——利用矩阵LU分解法求逆、行列式

本章介绍了LU分解法,以及如何利用LU分解法求逆、行列式,针对每个公式、原理、代码进行了详细介绍,希望可以给大家带来帮助。

王元笙 1万+

Ubuntu 18.04 远程 MySQL 部署:性能优化与安全加固实战

远程数据库是一种基础但关键的架构解耦策略,其核心原理是通过网络层隔离 Web 应用与 MySQL 的资源竞争,释放 CPU、内存和磁盘 I/O 瓶颈。技术价值在于以极低迁移成本实现 TPS 提升超 129%、响应延迟降低 60%,同时为读写分离与高可用演进奠定基础。典型应用场景包括 WordPress/WooCommerce 等 PHP CMS、Laravel 自建系统及中小规模 SaaS 后台——尤其当单机 MySQL 出现 504 错误频发、iowait 高企或缓冲池命中率低于 90% 时,远程部署即成

weixin_30527423的博客 383

Vue3结合vue-office实现Word文档上传与预览全流程解析

本文详细解析了如何在Vue3项目中集成vue-office插件实现Word文档上传与预览功能。从项目初始化、插件安装到文件上传处理(包括ArrayBuffer转换)、预览优化及常见问题解决方案,提供了一套完整的实现流程,帮助开发者快速实现高效的文档预览功能。

weixin_29001327的博客 464

在 MySQL 8.0 中,SSL 解密失败,在使用 SSL 加密连接时出现了问题

检查 MySQL 服务器和客户端的 SSL 配置。确保使用正确的证书和密钥,并且证书权限正确。确保 MySQL 用户的 SSL 连接配置正确。查看 MySQL 错误日志以获取更详细的错误信息。通过以上步骤,您应该能够排查和解决 MySQL 8.0 SSL 解密失败的问题。如果问题依然存在,可以提供更详细的错误信息,我会进一步帮助您分析。

m0_58223765的博客 2763

非目标代谢组学(untargeted metabolomics)中常用的方法学考察的方法(四)

最早使用的一种方法,从QC样本的总离子流图中选择具有代表性的离子峰(覆盖不同的保留时间,不同的强度),在对QC样本进行重复检测之后,计算这些离子的保留时间以及峰面积的相对标准偏差(RSD),用以考察分析方法的稳定性以及重复性。所有样品检测完之后,收集所有的QC样本的原始数据进行数据预处理,包括(峰提取,排列,归一化等),经过数据过滤(80%规则)之后,计算剩下的峰的峰面积的RSD值。由于QC样本是 等量混合了所有的被检测样本,理论上QC样本包含了所有样本中的代谢物,因此QC样本理论上会。

hlllllllhhhhh的博客 1489

4. SAP ABAP OData 服务 Data Provider Class 的 GET_ENTITYSET 方法实现指南

首先第19行CREATEDATA创建er_entityset实例,指定其类型为zcl_zbook_manage_mpc=>tt_book,接着把这个引用映射到刚刚第五行定义的FIELD-SYMBOLS变量上去,这样的话,接下来我们对FIELD-SYMBOLS进行的操作,就会自动反应回引用变量er_entityset.因为我们可能在这个方法里,返回多条图书信息,所以需要用内表类型,而非单条记录的ts_book.ts_book代表一本图书的数据结构。......

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2962

MySQL数据库SSL安全连接

使用数据库过程中,数据的安全成为必不可少的一道考量要求,尤其是敏感数据的传输和存储,对数据的传输机密性、完整性和身份验证机制提出了新的要求。在使用 REQUIRE X509 时,MySQL 服务器会验证客户端提供的证书是否是受信任的,并且该证书是否匹配已经注册的用户帐户中的证书。VERIFY_CA 在服务器端上对客户端启用 SSL 协议,并确保 SSL 连接是在根证书颁发机构的颁发证书上建立的,而且客户端提供了匹配考验的专业证书,非常适合客户端软件的验信标准很高或者要求传输数据增强保护的情况。

水布天 2099

Windows环境下Ollama的本地部署方案

本文主要介绍了Windows环境下Ollama的本地部署方案,希望对使用大语言模型的同学们有所帮助。 文章目录 1. 前言 2. Windows环境安装 3. API调用示例代码

herosunly的博客 11万+

MySQL服务器开启SSL加密功能

MySQL服务器开启SSL加密功能 我们知道,MySQL5.7之前版本,安全性做的并不够好,比如安装时生成的root空密码账号、存在任何用户都能连接上的test库等,导致数据库存在较大的安全隐患。好在5.7版本对以上问题进行了一一修复。与此同时,MySQL 5.7版本还提供了更为简单SSL安全访问配置,且默认连接就采用SSL的加密方式,这让数据库的安全性提高一个层次。 环境 IP 主机名 说...

weixin_34332905的博客 2566

基于NB-IoT的智慧路灯监控系统(NB-IoT专栏—实战篇1:项目简介)

基于NB-IoT技术的城市道路智慧路灯监控系统,在每个照明节点上安装一个集成了NB-IoT模组的单灯控制器,单灯控制器再经运营商的网络,与路灯控制平台实现双向通信,路灯控制平台直接对每个灯进行控制,包括开关灯控制、光照检测、自动调节明暗、电耗分析等操作。

不脱发的程序猿 5万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

为MySQL配置SSL加密访问

为MySQL配置SSL加密访问

https://ophome.blog.youkuaiyun.com,在IT行业有多年的工作经验,尤其是在Python、Linux、负载均衡、Nginx和服务器运维等领域。 1338

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: IDEA项目External Libraries中没有Maven依赖包
下一篇: 数据挖掘中常见的9种距离度量方法
狂龙骄子
博客等级 码龄17年 1万+粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂龙骄子

独码乐,不如众码乐,乐享其中

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值