网络知识
mysql环境搭建时如何配置SSL安全连接
2025-10-27 08:05  点击:6

在搭建MySQL环境时配置SSL安全连接,可以有效防止数据在传输过程中被窃听或篡改。只要MySQL服务器支持SSL(大多数现代版本默认支持),就可以通过以下步骤完成配置。

检查MySQL SSL支持情况

登录MySQL后执行以下命令查看SSL是否已启用:

SHOW VARIABLES LIKE '%ssl%';

重点关注以下几个变量:

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

如果 have_ssl 为 DISABLED 或 NO,需要手动配置证书和启用SSL。

生成SSL证书和密钥

MySQL提供了自带的脚本 mysql_ssl_rsa_setup 可以快速生成所需文件:

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

该命令会在指定目录生成如 ca.pem、server-cert.pem、server-key.pem、client-cert.pem、client-key.pem 等文件。你也可以使用OpenSSL手动创建CA和服务器/客户端证书,适合更严格的环境要求。

配置MySQL启用SSL

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

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

保存后重启MySQL服务:

systemctl restart mysqld

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

强制用户使用SSL连接

可以通过创建或修改用户来要求其必须使用SSL:

CREATE USER 'secure_user'@'%' IDENTIFIED BY 'password'
REQUIRE SSL;

或对已有用户修改:

ALTER USER 'existing_user'@'%' REQUIRE SSL;

此时该用户连接时必须使用 --ssl-mode=REQUIRED 参数,否则会被拒绝。

客户端连接测试

使用MySQL客户端测试SSL连接:

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

连接成功后,执行以下语句确认当前连接是否使用SSL:

STATUS;

查看输出中的"SSL"项,若显示"Cipher in use is TLS_AES_256_GCM_SHA384"等信息,说明SSL连接已生效。

可选:验证证书(双向认证)

如需更高安全性,可配置客户端证书验证。在 my.cnf 中为用户添加 REQUIRE X509 或指定证书:

ALTER USER 'secure_user'@'%' REQUIRE SUBJECT '/CN=client';

客户端连接时需提供自己的证书和私钥:

mysql -u secure_user -h host -p \
--ssl-ca=ca.pem \
--ssl-cert=client-cert.pem \
--ssl-key=client-key.pem

基本上就这些。只要证书生成正确、配置文件路径无误、权限设置得当,MySQL的SSL连接就能稳定运行。建议定期更新证书,并关闭非必要用户的SSL豁免,提升整体安全性。

以上就是环境搭建时mysql如何配置SSL安全连接的详细内容,更多请关注我们其它相关文章!