mysql如何在安装时配置SSL安全连接

确认MySQL支持SSL,通过SHOW VARIABLES LIKE 'have_ssl'检查;2. 使用mysql_ssl_rsa_setup生成CA、服务器和客户端证书密钥文件;3. 在my.cnf中配置ssl-ca、ssl-cert、ssl-key路径并重启服务;4. 执行SHOW VARIABLES和STATUS验证SSL启用状态;5. 可选创建REQUIRE SSL用户强制加密连接;6. 客户端使用--ssl-mode=REQUIRED测试安全连接。

MySQL 安装时配置 SSL 安全连接,主要是通过生成必要的证书和密钥文件,并在 MySQL 配置文件中启用 SSL 功能。以下是具体操作步骤,适用于大多数 Linux 环境下的 MySQL(如 MySQL 8.0+)安装场景。

1. 检查 MySQL 是否支持 SSL

安装完成后,先确认当前 MySQL 是否具备 SSL 支持:

登录 MySQL 执行:

mysql -u root -p

然后运行:

SHOW VARIABLES LIKE 'have_ssl';

如果返回值为 YES,说明支持 SSL;若为 DISABLED,则需要配置证书。

2. 生成 SSL 证书和密钥

MySQL 可以使用自带的 mysql_ssl_rsa_setup 工具自动生成证书,推荐使用此方式。

执行命令生成证书:

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

该命令会在数据目录(如 /var/lib/mysql)下生成以下关键文件:

  • ca.pem:CA 证书
  • server-cert.pemserver-key.pem:服务器证书和私钥
  • client-cert.pemclient-key.pem:客户端证书和私钥

确保这些文件权限正确,属主为 mysql 用户。

3. 配置 my.cnf 启用 SSL

编辑 MySQL 配置文件(通常位于 /etc/my.cnf/etc/mysql/mysql.conf.d/mysqld.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

保存后重启 MySQL 服务:

sudo systemctl restart mysql

4. 验证 SSL 是否启用

重新登录 MySQL,执行:

SHOW VARIABLES LIKE '%ssl%';

确认以下变量值:

  • have_ssl: YES
  • have_openssl: YES
  • ssl_cassl_certssl_key 显示正确路径

再查看当前连接是否使用 SSL:

STATUS;\s

输出中 “SSL:” 应显示使用的加密协议(如 TLSv1.3),若显示 "Not in use",则未启用。

5. 强制用户使用 SSL 连接(可选)

创建或修改用户时指定 SSL 要求:

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

或更新现有用户:

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

这样客户端必须使用 SSL 才能连接。

6. 客户端连接测试

使用 MySQL 客户端通过 SSL 连接:

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

常见 --ssl-mode 选项:

  • DISABLED:不使用 SSL
  • PREFERRED:优先使用 SSL
  • REQUIRED:强制使用 SSL

基本上就这些。只要证书生成正确,配置路径无误,MySQL 安装时或安装后都可以顺利启用 SSL 加密连接,提升数据传输安全性。