如何在mysql中启用SSL加密连接

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

在MySQL中启用SSL加密连接可以确保客户端与数据库服务器之间的数据传输安全。下面介绍如何检查SSL支持状态、配置MySQL启用SSL,并强制使用SSL连接。

检查MySQL SSL支持情况

登录MySQL后,执行以下命令查看SSL相关变量:

SHOW VARIABLES LIKE '%ssl%';

重点关注以下几个变量:

have_ssl:值为YES表示支持SSL,DISABLED表示未启用 ssl_cassl_certssl_key:证书和密钥文件路径

如果

have_ssl
为DISABLED,说明SSL未启用,需要进一步配置。

生成或准备SSL证书和密钥

MySQL支持自带的脚本生成测试证书,也可使用OpenSSL手动创建。

使用MySQL自带工具(适用于开发环境):

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

该命令会自动生成ca.pem、server-cert.pem、server-key.pem等文件。

生产环境建议使用CA签发的正式证书,或通过OpenSSL生成:

生成CA私钥和自签名证书 生成服务器私钥并签署证书 确保私钥权限为600,属主为mysql用户

配置MySQL启用SSL

编辑MySQL配置文件(通常为

my.cnf
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服务:

sudo systemctl restart mysql

再次执行

SHOW VARIABLES LIKE '%ssl%'
,确认
have_ssl
变为YES。

强制用户使用SSL连接

可以通过以下方式要求用户必须使用SSL:

创建用户时指定REQUIRE SSL:
CREATE USER 'secure_user'@'%' IDENTIFIED BY 'password' REQUIRE SSL;
修改现有用户:
ALTER USER 'existing_user'@'%' REQUIRE SSL;

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

验证SSL连接

使用客户端连接后,执行:

STATUS;

查看输出中的“SSL”行,如果显示Cipher信息,说明当前连接已加密。

也可以查询:

SHOW STATUS LIKE 'Ssl_cipher';

若返回非空值,表示当前会话使用了SSL加密。

基本上就这些。配置完成后,所有支持SSL的客户端连接将自动尝试加密。确保防火墙允许标准端口通信,同时定期更新证书以保障安全性。不复杂但容易忽略细节。

相关推荐