温馨提示×

debian mysql怎么开ssl

小樊
48
2026-10-29 02:20:10
栏目: 云计算

在 Debian 上给 MySQL 开启 SSL,一般步骤如下(以 Debian 10/11/12 + MySQL 8.x 为例,MariaDB 思路类似):


一、确认 MySQL 是否支持 SSL

mysql -u root -p -e "SHOW VARIABLES LIKE '%ssl%';"

如果看到:

  • have_ssl = YES → 已支持
  • have_ssl = DISABLED → 需要配置

二、生成 SSL 证书(MySQL 自带工具)

1. 进入 MySQL 数据目录

cd /var/lib/mysql

2. 使用 mysql_ssl_rsa_setup 生成证书

mysql_ssl_rsa_setup --datadir=/var/lib/mysql

生成文件包括:

  • ca.pem
  • server-cert.pem
  • server-key.pem
  • client-cert.pem
  • client-key.pem

3. 修改权限

chown -R mysql:mysql /var/lib/mysql/*.pem
chmod 600 /var/lib/mysql/*.pem

三、配置 MySQL 使用 SSL

编辑配置文件:

nano /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:

systemctl restart mysql

四、验证 SSL 是否启用

mysql -u root -p -e "SHOW VARIABLES LIKE 'have_ssl';"

应为:

have_ssl = YES

五、强制用户使用 SSL(可选)

ALTER USER 'user'@'%' REQUIRE SSL;
FLUSH PRIVILEGES;

六、客户端使用 SSL 连接

命令行

mysql -u user -p \
  --ssl-ca=/var/lib/mysql/ca.pem \
  --ssl-cert=/var/lib/mysql/client-cert.pem \
  --ssl-key=/var/lib/mysql/client-key.pem

检查连接是否加密

STATUS;

看到 SSL: Cipher in use 即成功。


七、常见问题

1. 报错 SSL connection error

  • 检查证书路径
  • 检查文件权限
  • 确认时间同步

2. MariaDB 差异

MariaDB 使用:

mariadb-secure-installation

或手动生成证书。


如果你告诉我:

  • Debian 版本
  • MySQL / MariaDB 版本
  • 是 本地还是远程连接

我可以给你更精确的配置示例。

0 踩