如何为mysql开启SSL_mysql SSL配置方法

9次阅读

MySQL 5.7.6+ 可原生启用 SSL,无需手动编译:先确认版本及 have_ssl=YES,再用 mysql_ssl_rsa_setup 生成证书,配置 my.cnf 中 ssl-ca/cert/key 路径,重启后 ALTER USER REQUIRE SSL,并用 –ssl-mode=REQUIRED 连接验证 Ssl_cipher 非空。

如何为 mysql 开启 SSL_mysql SSL 配置方法

MySQL 开启 SSL 并非必须手动编译或升级,只要版本 ≥ 5.7.6(推荐 8.0+),且 OpenSSL 库可用,就能原生支持。核心是生成合法证书、配置服务端参数、验证连接是否加密。

确认 MySQL 版本与 SSL 支持状态

登录 MySQL 后执行以下命令:

  • SELECT VERSION(); —— 确保 ≥ 5.7.6
  • SHOW VARIABLES LIKE ‘have_ssl‘; —— 返回 YES 表示已编译 SSL 支持
  • SHOW VARIABLES LIKE ‘ssl_%’; —— 查看当前 SSL 配置(初始可能全为 OFF 或空)

生成 SSL 证书和密钥文件

推荐使用 MySQL 自带的 mysql_ssl_rsa_setup 工具(5.7.6+ 自带),一键生成 PEM 格式证书:

  • 终端执行:mysql_ssl_rsa_setup –datadir=/var/lib/mysql(路径需匹配你的 datadir)
  • 默认生成 4 个文件:ca.pem(根证书)、server-cert.pemserver-key.pemclient-cert.pem
  • 确保这些文件属主为 mysql 用户,权限为 600(如:chown mysql:mysql /var/lib/mysql/ca.pem

配置 MySQL 服务端启用 SSL

编辑 my.cnf(通常在 /etc/my.cnf 或 /etc/mysql/my.cnf),在 [mysqld] 段添加:

  • ssl-ca = /var/lib/mysql/ca.pem
  • ssl-cert = /var/lib/mysql/server-cert.pem
  • ssl-key = /var/lib/mysql/server-key.pem
  • (可选)强制部分用户走 SSL:ALTER USER ‘user’@’host’ REQUIRE SSL;

保存后重启 MySQL:systemctl restart mysqld,再运行 SHOW VARIABLES LIKE ‘ssl_%’; 应看到对应路径和 ON 状态。

验证 SSL 连接是否生效

用客户端连接时显式指定 SSL 参数:

  • mysql -u user -p –ssl-mode=REQUIRED -h host
  • 连接成功后执行:STATUS;SELECT * FROM performance_schema.status_by_thread WHERE variable_name = ‘Ssl_cipher’;
  • 若显示非空 cipher(如 TLS_AES_256_GCM_SHA384),说明已 加密通信
星耀云
版权声明:本站原创文章,由 星耀云 2025-12-18发表,共计1165字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources