MySQL 启用 SSL 连接主要是通过在启动时加载正确的配置文件,并指定 SSL 相关参数来实现。虽然 MySQL 本身不通过“启动命令”直接开启 SSL,但可以通过配置 my.cnf(或 my.ini)文件并配合启动服务的方式启用 SSL 加密连接。
1. 检查 MySQL 是否支持 SSL
在开始配置前,先确认当前 MySQL 实例是否支持 SSL:登录 MySQL 执行以下命令:
SHOW VARIABLES LIKE '%ssl%';如果看到
have_ssl的值为 YES,说明支持 SSL;若为 DISABLED,则需要正确配置证书和密钥。
2. 生成或准备 SSL 证书和密钥
MySQL 支持自带的 openssl 工具生成测试证书,也可使用 CA 签发的正式证书。常用命令生成自签名证书(以 Linux 为例):
创建私钥:openssl genrsa -out key.pem 2048生成证书请求:
openssl req -new -key key.pem -out request.pem生成自签名证书:
openssl x509 -req -in request.pem -signkey key.pem -out cert.pem将生成的
key.pem、
cert.pem和可选的
ca.pem放入 MySQL 的证书目录,如:
/etc/mysql/ssl/
3. 配置 my.cnf 文件启用 SSL
编辑 MySQL 配置文件(通常位于/etc/my.cnf或
/etc/mysql/my.cnf),在 [mysqld] 段添加以下内容:
[mysqld] ssl-ca=/etc/mysql/ssl/ca.pem ssl-cert=/etc/mysql/ssl/cert.pem ssl-key=/etc/mysql/ssl/key.pem保存后重启 MySQL 服务使配置生效:
sudo systemctl restart mysql
4. 验证 SSL 是否启用成功
重新登录 MySQL,执行:SHOW VARIABLES LIKE 'have_ssl'; -- 应返回 YES <p>-- 查看当前连接是否使用 SSL STATUS; -- 或 SHOW STATUS LIKE 'Ssl_cipher';如果
Ssl_cipher不为空,表示当前连接已加密。
5. 客户端连接时强制使用 SSL
用户可通过指定 SSL 选项连接:mysql -u 用户名 -p --ssl-mode=REQUIRED也可以在创建用户时限制仅通过 SSL 登录:
CREATE USER 'secure_user'@'%' IDENTIFIED BY 'password' REQUIRE SSL;
基本上就这些。只要证书正确、配置无误,MySQL 在启动时会自动加载 SSL 设置,无需额外的“启动命令”显式开启。关键是确保配置文件中指定了证书路径,并重启服务加载新配置。
