mysql如何启用SSL连接_mysql SSL加密配置方法

来源:这里教程网 时间:2026-02-28 20:24:55 作者:

MySQL 启用 SSL 连接可以提升数据库通信的安全性,防止敏感数据在传输过程中被窃听。只要服务器正确配置了 SSL 证书,客户端连接时就能自动使用加密通道。下面介绍如何检查、配置和启用 MySQL 的 SSL 加密连接。

检查 MySQL 是否支持 SSL

登录 MySQL 命令行后,执行以下命令查看 SSL 支持状态:

SHOW VARIABLES LIKE '%ssl%';

重点关注以下变量:

have_ssl:值为 YES 表示支持 SSL ssl_cassl_certssl_key:显示证书文件路径

如果 have_ssl 为 DISABLED 或 NO,说明未启用或不支持,需要手动配置证书。

生成 SSL 证书和密钥

MySQL 提供了自带的脚本自动生成测试用的 PEM 格式证书,适用于开发环境:

mysql_ssl_rsa_setup --datadir=/path/to/ssl --uid=mysql

该命令会生成包括 ca.pem、server-cert.pem、server-key.pem、client-cert.pem、client-key.pem 等文件。生产环境建议使用权威 CA 签发的证书。

确保生成的证书文件权限安全(如 600),且属主为 mysql 用户。

配置 MySQL 启用 SSL

编辑 MySQL 配置文件 my.cnf(通常位于 /etc/my.cnf 或 /etc/mysql/my.cnf),在 [mysqld] 段添加:

[mysqld]
ssl-ca = /path/to/ssl/ca.pem
ssl-cert = /path/to/ssl/server-cert.pem
ssl-key = /path/to/ssl/server-key.pem

重启 MySQL 服务使配置生效:

systemctl restart mysqld

再次执行 SHOW VARIABLES LIKE '%ssl%',确认 have_ssl 为 YES,且证书路径正确加载。

强制用户使用 SSL 连接

可以通过创建或修改用户时指定 REQUIRE SSL:

CREATE USER 'secure_user'@'%' IDENTIFIED BY 'password' REQUIRE SSL;
-- 或修改已有用户
ALTER USER 'existing_user'@'%' REQUIRE SSL;

这样该用户只能通过 SSL 加密连接访问数据库。

客户端连接测试 SSL

使用 mysql 客户端连接时,可显式指定 SSL 参数:

mysql -u secure_user -p --ssl-mode=REQUIRED --host=your_host

连接成功后,执行:

\s

查看输出中的 "SSL" 行,若显示 Cipher 信息,说明已启用加密连接。

基本上就这些。只要证书存在、配置正确、用户策略设置到位,MySQL 就能安全地通过 SSL 加密通信。生产环境务必定期更新证书并监控连接安全性。

相关推荐

热文推荐