最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何启用MySQL客户端与服务端SSL连接
时间:2026-08-28 09:48:47 编辑:袖梨 来源:一聚教程网
必须先验证MySQL服务端SSL真实状态:执行SHOW VARIABLES LIKE 'have_ssl'返回YES且ssl_cipher非空,再确认ssl_ca/cert/key为绝对路径、文件存在、mysqld有读权限,并重启服务而非reload。
确认 MySQL 服务端已实际启用 SSL
很多配置失败的根源在于:服务端看似配了证书,但 ssl_cipher 为空、have_ssl 为 DISABLED,或仅 reload 未重启。必须先验证真实状态:
- 登录 MySQL 执行
SHOW VARIABLES LIKE 'have_ssl';,返回YES才代表编译支持;若为DISABLED,说明证书路径无效或权限不足 - 再查
SHOW VARIABLES LIKE 'ssl%';,重点看ssl_ca、ssl_cert、ssl_key是否指向绝对路径,且文件存在、MySQL 进程(如mysql用户)有读权限 -
ssl_cipher非空(如DHE-RSA-AES256-SHA)才是 SSL 真正生效的标志;仅配置路径不重启mysqld,该值仍为空
服务端配置必须写死绝对路径并重启
my.cnf 中的证书路径不能用相对路径、环境变量或符号链接——MySQL 启动时直接读取,不解析上下文。
- 在
[mysqld]段写入三行,路径必须完整:ssl_ca = /var/lib/mysql/ca.pem、ssl_cert = /var/lib/mysql/server-cert.pem、ssl_key = /var/lib/mysql/server-key.pem - 私钥文件
server-key.pem必须无密码(生成时加-nodes),否则启动失败,错误日志里会出现SSL error: Unable to get private key - 改完配置后执行
systemctl restart mysql(不是reload),否则变更不加载
客户端连接必须显式声明 ssl_mode 或证书参数
服务端开了 SSL ≠ 客户端自动加密。默认行为仍是明文,必须主动要求。
- 命令行连接时,最简方式是加
--ssl-mode=REQUIRED,例如:mysql -u user -p --ssl-mode=REQUIRED -h db.example.com - 若服务端证书是自签名或非公共 CA 签发,需额外指定 CA 文件:
--ssl-ca=/path/to/ca.pem;否则会报错SSL connection error: Certificate verification failed - 应用代码中(如 Python 的
pymysql或 Go 的mysql驱动),需在 DSN 里显式设置ssl_mode=REQUIRED或传入ssl字典,不能只依赖服务端配置
强制用户走 SSL 的坑:REQUIRE SSL 不等于全局加密
CREATE USER 'u'@'%' IDENTIFIED BY 'p' REQUIRE SSL; 只约束该用户,但其他用户仍可明文连接,且该用户若不带 SSL 参数仍会拒绝连接——它不改变协议默认行为。
- 要真正杜绝明文流量,得配合
require_secure_transport=ON(MySQL 5.7+),该参数让所有连接(无论用户)都必须走 SSL/TLS 或 Unix socket - 注意:开启
require_secure_transport=ON后,本地mysql -u root -p(无 host)可能失败,因默认走 socket;需显式加--protocol=tcp并提供 SSL 参数 - 测试是否生效:连接后执行
STATUS;,看输出里SSL:行是否显示具体 cipher;或查SELECT * FROM performance_schema.status_by_thread WHERE VARIABLE_NAME = 'Ssl_cipher';
实际生效的关键不在“配了多少”,而在 ssl_cipher 是否非空、ssl_mode 是否被客户端明确传递、以及私钥是否真的没密码——这三个点漏掉任何一个,连接都会静默降级到明文。
相关文章
- 小米路由器风扇声音大怎么办(小米路由器风扇声音大怎么解决) 08-28
- excel如何计算提成和个税 08-28
- excel如何计算圆的面积 08-28
- 小米路由器风扇一直转怎么回事(小米路由器风扇一直转什么原因) 08-28
- 小k浏览器手机版如何关闭点按搜索功能 08-28
- premiere如何制作太阳旋转动画效果 08-28