mysql ssl安全加密算法_MySQL 5.7 的SSL加密方法

本文介绍了在MySQL 5.7.6及以上版本中如何设置SSL加密,包括创建证书、修改my.cnf配置文件、重启MySQL服务、配置SSL用户以及验证SSL连接。详细步骤包括使用openssl生成证书、修改my.cnf启用SSL,并展示了不同版本MySQL客户端的SSL连接选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL 5.7.6或以上版本

(1)创建证书开启SSL验证

--安装openssl

yum install -y openssl

openssl version

OpenSSL 1.0.1e-fips 11 Feb 2013

--安装证书

/usr/local/mysql/bin/mysql_ssl_rsa_setup   --datadir=/data/mysql/mysql3306/data

--修改权限

chown -R mysql:mysql /data/mysql/mysql3306/data

pwd

/data/mysql/mysql3306/data

[root@VM_45_133_centos Wed Jun 28 10:51:22 data]# ll

total 1024072

-rw-r----- 1 mysql mysql         56 Jun 19 17:56 auto.cnf

-rw------- 1 root  root        1679 Jun 28 10:48 ca-key.pem

-rw-r--r-- 1 root  root        1074 Jun 28 10:48 ca.pem

-rw-r--r-- 1 root  root        1078 Jun 28 10:48 client-cert.pem

-rw------- 1 root  root        1679 Jun 28 10:48 client-key.pem

-rw-r----- 1 mysql mysql        672 Jun 28 10:47 ib_buffer_pool

-rw-r----- 1 mysql mysql 1048576000 Jun 28 10:47 ibdata1

drwxr-x--- 2 mysql mysql       4096 Jun 19 17:57 mysql

drwxr-x--- 2 mysql mysql       4096 Jun 19 17:57 performance_schema

-rw------- 1 root  root        1679 Jun 28 10:48 private_key.pem

-rw-r--r-- 1 root  root         451 Jun 28 10:48 public_key.pem

drwxr-x--- 2 mysql mysql       4096 Jun 23 10:48 school

-rw-r--r-- 1 root  root        1078 Jun 28 10:48 server-cert.pem

-rw------- 1 root  root        1675 Jun 28 10:48 server-key.pem

drwxr-x--- 2 mysql mysql      12288 Jun 19 17:57 sys

-rw-r----- 1 mysql mysql        418 Jun 20 14:14 VM_45_133_centos.log

客户端连接需要的证书,当然不用证书也是可以的

-rw-r--r-- 1 root  root        1074 Jun 28 10:48 ca.pem

-rw-r--r-- 1 root  root        1078 Jun 28 10:48 client-cert.pem

-rw------- 1 root  root        1679 Jun 28 10:48 client-key.pem

-rw------- 1 root  root        167

### MySQL 5.7MySQL 8.0之间的SSL配置和使用差异 #### SSL支持的变化 在MySQL 5.7版本中,已经引入了较为完善的SSL/TLS安全连接的支持功能。而在升级到MySQL 8.0之后,官方进一步增强了这方面的特性,在默认情况下启用了更严格的安全策略[^1]。 对于服务器端而言,两个版本均允许通过修改`my.cnf`(Linux) 或 `my.ini`(Windows) 配置文件来设置SSL参数。然而,在具体选项上存在一些不同之处: - **证书路径指定** - 在MySQL 5.7里,可以通过如下几个变量定义CA根证书、服务端私钥以及公钥的位置: - ssl-ca=/path/to/ca-cert.pem - ssl-key=/path/to/server-key.pem - ssl-cert=/path/to/server-cert.pem - 到达MySQL 8.0时,除了上述三个基本项外还增加了对椭圆曲线加密算法(ECC) 的支持,并新增了一个用于ECDHE密钥交换模式下的临时DH参数文件指针——ssl-dhparams-file=/path/to/dhparam.pem[^2] - **协议版本控制** - 自MySQL 8.0起,默认禁用了TLSv1 和 TLSv1.1 协议版本;只保留了更为安全的TLSv1.2及以上版本作为可选通信方式。而在此之前的老版数据库产品则可能仍然兼容较低级别的传输层安全性标准[^3]. - **客户端验证机制改进** - 当前最新一代的产品线加强了双向认证流程中的身份校验力度,即不仅限于检查对方所提供的数字凭证的有效性,还会依据特定条件动态调整握手过程中的行为逻辑。例如当启用require_secure_transport=true全局系统变量后,除非采用经过签名确认的身份证明材料建立会话通道,否则一律拒绝外部访问请求[^4]. ```sql -- 设置全局变量以强制要求安全传输 (适用于MySQL 8.0) SET GLOBAL require_secure_transport = 'ON'; ``` 此外值得注意的是,尽管新旧两代平台都提供了相似的功能接口供开发者调用,但在实际部署过程中应当充分考虑到各自环境特点并参照相应手册完成必要的适配工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值