MariaDB数据库开启SSL 教程

MariaDB 开启 SSL 教程

步骤 1:创建证书存放目录
python 复制代码
mkdir -p /usr/local/mysql/ssl
python 复制代码
##### 步骤 2:用 openssl 一键生成所有证书
1. 生成CA根证书
openssl genrsa 2048 > ca-key.pem
openssl req -new -x509 -days 3650 -nodes -key ca-key.pem -out ca.pem

2. 生成服务端证书+私钥 
# ========== 1. 生成CA根证书(修复核心缺陷,必对) ==========
openssl genrsa 2048 > ca-key.pem
openssl req -new -x509 -days 3650 -nodes -key ca-key.pem -out ca.pem

# ========== 2. 生成服务端证书+私钥 ==========
openssl req -newkey rsa:2048 -days 3650 -nodes -keyout server-key.pem -out server-req.pem
openssl rsa -in server-key.pem -out server-key.pem
openssl x509 -req -in server-req.pem -days 3650 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

# ========== 3. 生成客户端证书+私钥(客户端连接时用) ==========
openssl req -newkey rsa:2048 -days 3650 -nodes -keyout client-key.pem -out client-req.pem
openssl rsa -in client-key.pem -out client-key.pem
openssl x509 -req -in client-req.pem -days 3650 -CA ca.pem -CAkey ca-key.pem -set_serial 02 -out client-cert.pem

#执行中会弹出 3 次填写信息的提示,所有信息都可以直接回车跳过(不用填任何内容),直接按Enter就行,不影响证书有效性!
步骤 3:证书权限配置
python 复制代码
chmod 600 *.pem
步骤 4:修改/etc/my.cnf,添加如下配置
python 复制代码
[mysqld]
# 原有SSL配置不变
ssl=ON
ssl_ca=/usr/local/mysql/ssl/ca.pem
ssl_cert=/usr/local/mysql/ssl/server-cert.pem
ssl_key=/usr/local/mysql/ssl/server-key.pem
# 新增:强制所有连接必须使用SSL加密,拒绝明文连接(核心配置)
require_secure_transport=ON
步骤 5:检测是否成功
python 复制代码
1. 重启服务:
systemctl  restart MariaDB

2. 连接登录数据库:
mysql -uroot -p'密码'

3. 执行查询 SQL:
show variables like '%ssl%';

输出结果:
**+---------------+---------------------------+
| Variable_name | Value                     |
+---------------+---------------------------+
| have_openssl  | YES                       |
| have_ssl      | YES                       | 👉 这个值为 YES 表示SSL完全开启成功!
| ssl_ca        | /var/lib/mysql/ca.pem     |
| ssl_cert      | /var/lib/mysql/server-cert.pem |
| ssl_key       | /var/lib/mysql/server-key.pem  |
+---------------+---------------------------+**
相关推荐
这个DBA有点耶15 小时前
从症状到根因:数据库监控指标的分层方法与静态/动态阈值策略
数据库·mysql·代码规范
SelectDB16 小时前
时间旅行与快照能力速查:Doris 侧三条落地路径
大数据·数据库·数据分析
SelectDB16 小时前
云数仓成本结构拆解速查:五层计费 vs Doris / 托管形态
大数据·数据库·数据分析
SelectDB16 小时前
什么场景能承接与建议保留:Doris vs Snowflake 边界速查
大数据·数据库·数据分析
这个DBA有点耶18 小时前
DELETE没删多少数据,表却越来越大——InnoDB删除空洞与页合并失效的根因
数据库·mysql·代码规范
ly768921 小时前
PostgreSQL 备份恢复策略:pg_basebackup、WAL 归档与 PITR 在企业 Java 系统中的落地
java·数据库·postgresql·pitr·pg_basebackup·wal 归档
小羊没烦恼!1 天前
Ajax与JSON的一些总结
android·java·前端·数据库·mysql·算法·okhttp
注塑机数据采集联网1 天前
如何解决注塑机数据采集联网对接MES系统数据WiFi传输数据不稳问题
大数据·数据库·物联网·数据挖掘·数据分析
黄俊懿1 天前
【架构师从入门到进阶】第六章:服务集群优化——第八节:线程数公式
java·服务器·数据库·分布式·性能优化·架构·系统架构