MySQL的SSL加密连接问题,突然就连上Mysql怎么办?这里告诉你一种存在的可能

server/2024/9/24 21:24:28/

背景

        这是一个生产问题引发的我对MySQL的SSL的认识,今年年初遇到一个mysql的问题,由于公司内业务系统升级关闭了mysql的SSL认证,导致mysqlWorkBench 和 程序无法正常连接到该MySQL数据库。虽然在知道原因之后来看好像很简单,但是排故过程其实非常困难,因为你不知道业务系统升级了做了什么操作。你的系统还需要连接它的数据库,虽然这样不规范,但是某些情况我们为了上线效率或其他商务原因,只有一定程度上容忍这种不规范。规范操作是原有系统提供接口我们调用该系统提供的接口即可,这样无论原系统如何变,只要接口满足之前的规范,第三方系统都不会被原系统升级而导致改变。(出了这次故障,进一步明白系统之间的交互应该严格遵守使用接口交互,不应直连数据库)扯远了,回到本次故障解决上面来

解决办法

        其实由于MySQL服务默认安装是开启了SSL加密连接服务的,所以我们一般在数据库建立链接的时候默认 useSSL为true,所以很少有人会注意到这么小的一个配置它的意义,也许就是以前项目这么配置连接MySql,为了方便这次我也直接复制了之前的链接字符串,一开始还是成功链接,当你的程序上线一段时间,如果源系统升级改了MySQL的一些配置,就比如这次它关闭了SSL链接认证,立马你的程序就会出现连接数据库异常,解决办法其实很简单,如果 MySQL关闭SSL服务,那么在程序链接字符串需要加上 &userSSL=false

如果你使用的是MySQL的配置文件(比如my.cnf或my.ini),你可以添加或修改以下配置来关闭SSL:[mysqld]
ssl = 0

回想一下:

        为什么MySQL要提供SSL链接呢?其实一般mysql都部署在内网,外网是无法直接访问的,我们还需要应用加密区链接mysql么?

        普遍的做法,安装好数据库之后为该项目创建一个用户,并授予权限,然后我们在项目中直接使用用户名和密码直接连接mysql数据库,这样安全么?

        好的情况,我们可以将这些敏感的配置信息进行加密存储,可问题是我们通常的加密其实是一个可逆的,密钥和密文都放在一起,程序在于Mysql建立连接的时候,还是需要先解密,然后密文传输到Mysql服务器上,建立数据库连接,其实也就是增加了破解密码的难度,通过代码不能一目了然的看大密码(虽然可以解密),但是将网络请求拦截下来,数据库建立的请求以及数据库查询和返回的内容都是明文传输的,存在着不安全。

Mysql怎么做的呢?

        其实Mysql引入了类似于HTTPS一样的协议,就是SSL来解决传输加密,使用这一套机制可以保证Mysql在数据传输加密,内容不被篡改

        SSL:表示mysql服务允许加密连接,这个参数在mysql8.0 是默认启用的,MySQL启动的时候自动生成SSL证书、密钥文件,以及RSA密钥对文件;或者使用mysql_ssl_rsa_setup生成

MySQL的SSL建立过程

1.客户端发起 ssl 连接请求;

2.MySQL Server 发送数字证书 server-cert.pem 给客户端(server-cert.pem包含:服务器公钥、CA签名信息);

3.客户端使用CA 证书 ca.pem(由于这是 MySQL 自签名的CA证书,无法从操作系统的可信任区获取(压根不在这里边),所以事先必须在客户端本地保存 CA 证书文件中的 CA 公钥解密 server-cert.pem 中的签名,进行验证;

4.验证通过后,生成对称密钥,使用 server-cert.pem 中的公钥加密“对称密钥”,发送给 MySQL Server;

5.MySQL Server 使用自己保留的私钥 server-key.pem 解密,得到“对称密钥”;

6.接下来传输数据则使用“对称密钥”进加密和解密


http://www.ppmy.cn/server/115316.html

相关文章

深度学习:怎么看pth文件的参数

.pth 文件是 PyTorch 模型的权重文件,它通常包含了训练好的模型的参数。要查看或使用这个文件,你可以按照以下步骤操作: 1. 确保你有模型的定义 你需要有创建这个 .pth 文件时所用的模型的代码。这意味着你需要有模型的类定义和架构。 2. …

【Linux入门】防火墙基础之iptables

文章目录 防火墙概述一、硬件防火墙二、软件防火墙1. iptables2. firewalld3. ufw iptables概述netfilter/iptables关系四表五链规则表的作用:规则链的作用:四表:五链: 数据包到达防火墙时的处理顺序: 防火墙概述 防火…

Ubuntu系统安装Gitlab

步骤 1:前提准备 首先,更新你的系统软件包,以确保你有最新的安全补丁和更新: sudo apt update sudo apt upgrade -y步骤 2:安装依赖项 在安装GitLab之前,你需要确保安装了以下必要的依赖项: …

2024/9/9 408“回头看”:b树

B树是什么?有什么作用?B树的插入和删除具体细节是什么?除了B树还有一个是B+树、还是B-树,他们有什么区别,又有什么相同点? b树在王道考研查找这一章,所以他的主要作用就是查找。 在…

华为 HCIP-Datacom H12-821 题库 (9)

1.需要题库的小伙伴至博客最下方添加微信公众号关注后回复题库 2.有兴趣交流IT问题的小伙伴微信公众号回复交流群,加入微信IT交流群 1.以下关于 RSTP 保护功能的描述,错误的是哪一选项? A、环路保护可以部署在根端口上,以防网络中…

使用Vue3+TS玩转高德地图

不知道大家在开发的时候,是否遇到过需要利用地图去展示一些地理位置信息,而又不知道从哪里下手,下面我将使用高德地图带大家完成地图相关内容的开发 内容主要有: 地图的初始化, 地图内置插件的使用(鹰眼…

【算法专题--回文】回文排列 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、预备知识 🥝 什么回文串 ? 四、题目解析 五、总结与提炼 六、共勉 一、前言 回文排列 这道题,可以说是--回文专题 和 哈希专题--,最经典的一道题,也是在面试中频率最高的…

什么牌子的无线领夹麦克风好,中国十大麦克风品牌排行榜推荐

​对于追求高品质视频内容的创作者来说,优质的录音设备是不可或缺的。今天,我将分享几款性价比极高的无线领夹麦克风,它们将帮助你在各种拍摄环境中获得清晰、专业的音频,让你的作品声音部分无可挑剔吧! 无线领夹麦克风…