温馨提示×

ubuntu sqladmin怎么开启ssl

小樊
39
2026-07-11 01:27:26
栏目: 云计算

在 Ubuntu 上给 SQLAdmin(通常指 MySQL / MariaDB 的管理员账户或 phpMyAdmin / Adminer 等工具)开启 SSL,一般分 数据库服务端 SSL客户端/管理工具使用 SSL 两部分。下面以 MySQL / MariaDB 为主说明(最常见场景)。


一、确认 MySQL / MariaDB 是否支持 SSL

mysql -u root -p -e "SHOW VARIABLES LIKE 'have_ssl';"
  • YES:已支持
  • DISABLED:支持但未启用
  • NO:不支持(需升级)

二、为 MySQL / MariaDB 开启 SSL(服务端)

1️⃣ 生成 SSL 证书(推荐)

sudo mkdir -p /etc/mysql/ssl
cd /etc/mysql/ssl

生成 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

2️⃣ 配置 MySQL 使用 SSL

编辑配置文件:

sudo nano /etc/mysql/mysql.conf.d/mysqld.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:

sudo systemctl restart mysql

3️⃣ 确认 SSL 已启用

mysql -u root -p -e "\s"

应看到:

SSL: Cipher in use is ...

三、为 sqladmin 用户强制使用 SSL

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

或更强限制:

REQUIRE X509;        -- 需要客户端证书
REQUIRE CIPHER 'AES256';

四、客户端 / SQLAdmin 工具使用 SSL

✅ mysql 命令行

mysql --ssl-mode=REQUIRED -u sqladmin -p

指定证书:

mysql \
--ssl-ca=/etc/mysql/ssl/ca-cert.pem \
--ssl-cert=/etc/mysql/ssl/client-cert.pem \
--ssl-key=/etc/mysql/ssl/client-key.pem \
-u sqladmin -p

✅ phpMyAdmin(常见)

编辑:

sudo nano /etc/phpmyadmin/config.inc.php

添加:

$cfg['Servers'][$i]['ssl'] = true;

如需证书:

$cfg['Servers'][$i]['ssl_ca']   = '/etc/mysql/ssl/ca-cert.pem';
$cfg['Servers'][$i]['ssl_cert'] = '/etc/mysql/ssl/client-cert.pem';
$cfg['Servers'][$i]['ssl_key']  = '/etc/mysql/ssl/client-key.pem';

✅ Adminer

在登录页面:

  • 勾选 SSL
  • 或连接字符串使用:
ssl://localhost

五、常见问题

❌ 错误:SSL connection error

  • 证书路径错误
  • 证书权限不对(MySQL 不能读)
sudo chown mysql:mysql /etc/mysql/ssl/*

❌ phpMyAdmin 仍显示未加密

  • 确认 MySQL 端口是 3306
  • 确认 ssl = true
  • 重启 Apache / PHP-FPM

六、快速检查清单 ✅

  • [ ] MySQL 支持 SSL
  • [ ] 证书已生成
  • [ ] mysqld.cnf 已配置
  • [ ] 用户 REQUIRE SSL
  • [ ] 客户端/工具启用 SSL

如果你指的是 SQLAdmin(某个具体软件)PostgreSQL / SQL Server,告诉我具体名称,我可以给你更精确的配置步骤。

0