在 Debian 上给 MySQL 开启 SSL,一般步骤如下(以 Debian 10/11/12 + MySQL 8.x 为例,MariaDB 思路类似):
mysql -u root -p -e "SHOW VARIABLES LIKE '%ssl%';"
如果看到:
have_ssl = YES → 已支持have_ssl = DISABLED → 需要配置cd /var/lib/mysql
mysql_ssl_rsa_setup --datadir=/var/lib/mysql
生成文件包括:
ca.pemserver-cert.pemserver-key.pemclient-cert.pemclient-key.pemchown -R mysql:mysql /var/lib/mysql/*.pem
chmod 600 /var/lib/mysql/*.pem
编辑配置文件:
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
mysql -u root -p -e "SHOW VARIABLES LIKE 'have_ssl';"
应为:
have_ssl = YES
ALTER USER 'user'@'%' REQUIRE SSL;
FLUSH PRIVILEGES;
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 即成功。
SSL connection errorMariaDB 使用:
mariadb-secure-installation
或手动生成证书。
如果你告诉我:
我可以给你更精确的配置示例。