安装mysql后如何配置SSL连接

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

安装 MySQL 后配置 SSL 连接,主要是为了加密客户端与服务器之间的通信,提升数据传输的安全性。MySQL 在较新版本中默认会自动生成 SSL 证书和密钥,但你也可以手动创建更安全的证书。以下是具体配置步骤。

检查 MySQL 是否支持 SSL

登录 MySQL 命令行后执行:

SELECT @@have_ssl;
SHOW VARIABLES LIKE '%ssl%';

如果 have_ssl 的值为 YES,且相关 SSL 参数(如 ssl_ca、ssl_cert、ssl_key)已设置,说明 SSL 支持已启用。若未配置,继续下一步。

生成 SSL 证书和密钥

你可以使用 MySQL 自带的 mysql_ssl_rsa_setup 工具自动生成:

mysql_ssl_rsa_setup --datadir=/var/lib/mysql/ssl --uid=mysql

该命令会在指定目录生成所需的 PEM 文件,包括:

ca.pem – CA 证书 server-cert.pem – 服务器证书 server-key.pem – 服务器私钥 client-cert.pem – 客户端证书 client-key.pem – 客户端私钥

确保这些文件权限安全(例如 600),并归属 mysql 用户。

配置 MySQL 启用 SSL

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

[mysqld]
ssl-ca = /var/lib/mysql/ssl/ca.pem
ssl-cert = /var/lib/mysql/ssl/server-cert.pem
ssl-key = /var/lib/mysql/ssl/server-key.pem

保存后重启 MySQL 服务:

systemctl restart mysql

再次登录 MySQL,运行 SHOW VARIABLES LIKE '%ssl%'; 确认配置已加载。

强制用户使用 SSL 连接

可以为特定用户要求 SSL 认证。例如:

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

这样该用户连接时必须使用 SSL,否则会被拒绝。

客户端连接测试 SSL

使用 mysql 命令行测试 SSL 连接:

mysql -u secure_user -h your_mysql_host -p --ssl-mode=REQUIRED

连接成功后,执行:

STATUS;

查看输出中的 “SSL” 行,若显示使用的加密协议(如 TLSv1.2),说明 SSL 连接已生效。

基本上就这些。只要证书生成正确、配置路径无误、权限设置得当,MySQL 的 SSL 加密连接就能顺利启用。不复杂但容易忽略的是文件路径和权限问题,务必确认 mysqld 能读取证书文件。

相关推荐