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.pem、
server-key.pem:服务器证书和私钥
client-cert.pem、
client-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_ca、
ssl_cert、
ssl_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 加密连接,提升数据传输安全性。
