MySQL如何添加SSL证书:一步步实现安全连接

要在MySQL中添加SSL证书,首先需要生成或获取有效的证书文件,然后在MySQL配置中启用SSL选项并指定证书路径,最后重启服务使配置生效。核心步骤包括生成自签名证书、修改MySQL配置文件以启用SSL并指定证书文件路径,以及验证SSL连接是否成功建立。

mysql如何添加ssl证书,MySQL安全配置SSL证书指南

为什么需要为MySQL启用SSL?

在数据传输过程中,未加密的连接容易受到中间人攻击,导致敏感信息泄露,启用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)可以加密客户端与MySQL服务器之间的通信,确保数据在传输过程中的机密性和完整性,这对于生产环境或涉及敏感数据(如用户密码、财务信息)的应用至关重要。

添加SSL证书的具体步骤

生成SSL证书(以自签名证书为例)

如果尚未拥有CA签发的证书,可通过OpenSSL生成自签名证书,执行以下命令:

# 生成CA私钥和证书
openssl genrsa 2048 > ca-key.pem
openssl req -new -x509 -nodes -days 3650 -key ca-key.pem -out ca-cert.pem
# 生成服务器端证书
openssl req -newkey rsa:2048 -days 3650 -nodes -keyout server-key.pem -out server-req.pem
openssl rsa -in server-key.pem -out server-key.pem
openssl x509 -req -in server-req.pem -days 3650 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
# 生成客户端证书(可选,用于双向验证)
openssl req -newkey rsa:2048 -days 3650 -nodes -keyout client-key.pem -out client-req.pem
openssl rsa -in client-key.pem -out client-key.pem
openssl x509 -req -in client-req.pem -days 3650 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

生成的文件包括:

  • CA证书ca-cert.pem
  • 服务器证书server-cert.pemserver-key.pem
  • 客户端证书client-cert.pemclient-key.pem(用于严格的身份验证)

配置MySQL服务器启用SSL

将证书文件移至MySQL的安全目录(如 /etc/mysql/ssl/),并修改MySQL配置文件(通常为 my.cnfmysqld.cnf):

[mysqld]
ssl-ca = /etc/mysql/ssl/ca-cert.pem
ssl-cert = /etc/mysql/ssl/server-cert.pem
ssl-key = /etc/mysql/ssl/server-key.pem

注意:确保MySQL用户(如 mysql)对证书文件有读取权限。

重启MySQL服务并验证SSL状态

重启服务使配置生效:

sudo systemctl restart mysql

登录MySQL并检查SSL是否启用:

SHOW VARIABLES LIKE '%ssl%';

have_ssl 的值为 YES,则表示SSL已成功启用。

配置客户端使用SSL连接

  • 命令行连接:添加 --ssl-mode=REQUIRED 参数:
    mysql -u 用户名 -p --ssl-mode=REQUIRED --ssl-ca=/etc/mysql/ssl/ca-cert.pem
  • 应用程序连接:在连接字符串中指定SSL参数,例如使用PHP PDO:
    $pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'password', [
        PDO::MYSQL_ATTR_SSL_CA => '/etc/mysql/ssl/ca-cert.pem',
        PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false
    ]);

高级配置与注意事项

  • 强制SSL连接:可通过修改用户权限要求所有连接使用SSL:
    ALTER USER '用户名'@'主机' REQUIRE SSL;
  • 证书有效期管理:自签名证书通常设置较长有效期(如3650天),生产环境建议使用受信任CA签发的证书并定期更新。
  • 性能影响:SSL加密会增加CPU开销,但现代硬件下影响通常较小,可通过监控工具(如 SHOW STATUS LIKE 'Ssl%')评估性能。
  • 防火墙与网络配置:确保网络允许SSL端口

未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网

原文地址:https://www.html4.cn/12816.html发布于:2026-08-24