安装 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 能读取证书文件。
