首先确认MySQL支持SSL,通过SHOW VARIABLES LIKE '%ssl%'检查;若支持,使用mysql_ssl_rsa_setup生成证书文件;接着在my.cnf中配置ssl-ca、ssl-cert和ssl-key路径,并重启服务;然后验证SSL状态及加密套件;最后创建 REQUIRE SSL 用户并测试客户端SSL连接,确保数据传输加密安全。

MySQL配置SSL证书可以提升数据库连接的安全性,防止数据在传输过程中被窃听或篡改。通过启用SSL,客户端与MySQL服务器之间的通信将被加密。以下是详细的配置方法。
1. 检查MySQL是否支持SSL
登录MySQL后执行以下命令查看SSL支持状态:
SHOW VARIABLES LIKE '%ssl%';
如果have_ssl的值为YES,说明MySQL已支持SSL。若为DISABLED,可能需要重新编译或安装带SSL支持的版本(如使用官方MySQL发行版通常默认支持)。
2. 生成SSL证书和密钥
MySQL自带脚本可自动生成所需的证书文件,位于mysql_ssl_rsa_setup工具中。运行以下命令:
mysql_ssl_rsa_setup --datadir=/var/lib/mysql --uid=mysql
该命令会在指定的数据目录下生成如下关键文件:
- ca.pem:CA证书
- server-cert.pem 和 server-key.pem:服务器证书和私钥
- client-cert.pem 和 client-key.pem:客户端证书和私钥
确保这些文件权限安全,仅MySQL服务账户可读写。
3. 配置MySQL启用SSL
编辑MySQL配置文件my.cnf(Linux通常位于/etc/my.cnf或/etc/mysql/my.cnf),在[mysqld]部分添加:
[mysqld] ssl-ca=ca.pem ssl-cert=server-cert.pem ssl-key=server-key.pem
路径应为证书实际存放路径,也可使用绝对路径。保存后重启MySQL服务:
systemctl restart mysql
4. 验证SSL是否启用
再次登录MySQL,执行:
本书图文并茂,详细讲解了使用LAMP(PHP)脚本语言开发动态Web程序的方法,如架设WAMP平台,安装与配置开源Moodle平台,PHP程序设计技术,开发用户注册与验证模块,架设LAMP平台。 本书适合计算机及其相关专业本、专科学生作为学习LAMP(PHP)程序设计或动态Web编程的教材使用,也适合对动态Web编程感兴趣的读者自觉使用,对LAMP(PHP)程序设计人员也具有一定的参考价值。
SHOW VARIABLES LIKE 'have_ssl'; -- 应返回 YESSHOW STATUS LIKE 'Ssl_cipher'; -- 若有输出加密套件,表示SSL已生效
也可以通过连接时查看:
STATUS;
在输出信息中查看“SSL”项是否为“Cipher in use”。
5. 强制用户使用SSL连接
创建或修改用户时指定SSL要求:
CREATE USER 'secure_user'@'%' IDENTIFIED BY 'password' REQUIRE SSL;-- 或修改现有用户 ALTER USER 'existing_user'@'%' REQUIRE SSL;
这样该用户只能通过SSL加密连接访问数据库。
6. 客户端连接测试
使用MySQL客户端通过SSL连接:
mysql -u secure_user -p --ssl-mode=REQUIRED
其他支持SSL的客户端(如应用程序、phpMyAdmin等)需配置证书路径,一般提供以下参数:
- SSL CA证书路径
- 客户端证书(client-cert.pem)
- 客户端私钥(client-key.pem)
基本上就这些。只要证书生成正确,配置文件无误,重启服务后就能实现加密连接。建议定期更新证书,并限制非SSL用户的权限,进一步提升安全性。









