首先确认MySQL支持SSL,通过SHOW VARIABLES检查have_ssl状态;若未启用,使用mysql_ssl_rsa_setup生成证书或OpenSSL手动创建;在my.cnf中配置ssl-ca、ssl-cert、ssl-key路径并重启服务;创建用户时指定REQUIRE SSL强制加密连接;客户端用–ssl-mode=REQUIRED测试连接,并通过STATUS验证SSL加密生效;可选配置客户端证书实现双向认证;最后建议定期更新证书并限制非必要用户的SSL豁免以增强安全性。

在搭建MySQL环境时配置SSL安全连接,可以有效防止数据在传输过程中被窃听或篡改。只要MySQL服务器支持SSL(大多数现代版本默认支持),就可以通过以下步骤完成配置。
检查MySQL SSL支持情况
登录MySQL后执行以下命令查看SSL是否已启用:
SHOW VARIABLES LIKE ‘%ssl%’;
重点关注以下几个变量:
have_ssl:值为YES表示支持SSL ssl_ca、ssl_cert、ssl_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安全连接的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/195865.html
微信扫一扫
支付宝扫一扫