You need to enable JavaScript to run this app. 如何为运行在Ubuntu 18 LTS上的MySQL数据库配置域名绑定的SSL连接
优惠活动
大模型
产品
解决方案
定价
更多

如何为运行在Ubuntu 18 LTS上的MySQL数据库配置域名绑定的SSL连接

MySQL绑定域名SSL配置指南(Ubuntu 18 LTS适用)

MySQL完全支持绑定域名的SSL配置,核心要求是服务端使用的SSL证书的通用名(CN)或使用者备用名称(SAN)字段包含你要绑定的数据库访问域名即可,以下是具体操作步骤:

前置准备

提前获取对应域名的SSL证书,可使用公开CA签发的证书,也可使用自签证书,需准备三个文件:

  • 服务端证书文件(例:server.crt),证书的CN/SAN必须填写你要绑定的MySQL域名,如mysql.yourdomain.com
  • 服务端私钥文件(例:server.key)
  • CA根证书文件(自签证书为自签CA证书,公开CA证书为CA链文件,例:ca.crt)

操作步骤

1. 上传证书并配置权限

将三个证书文件上传到Ubuntu服务器的指定目录,调整权限确保MySQL进程可读取:

sudo mkdir -p /etc/mysql/ssl
# 将证书放到上述目录后执行权限修改
sudo chown mysql:mysql /etc/mysql/ssl/*
sudo chmod 600 /etc/mysql/ssl/server.key
sudo chmod 644 /etc/mysql/ssl/server.crt /etc/mysql/ssl/ca.crt

2. 修改MySQL配置文件

编辑MySQL主配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,新增或修改以下配置项:

[mysqld]
# 启用SSL配置
ssl_ca = /etc/mysql/ssl/ca.crt
ssl_cert = /etc/mysql/ssl/server.crt
ssl_key = /etc/mysql/ssl/server.key
# 可选:强制所有连接必须使用SSL,按需开启
# require_secure_transport = ON
# 按需配置监听地址,公网访问可设为0.0.0.0
bind-address = 0.0.0.0

保存后重启MySQL服务使配置生效:

sudo systemctl restart mysql

3. 验证服务端SSL状态

登录MySQL执行命令检查SSL是否成功启用:

SHOW VARIABLES LIKE '%ssl%';

返回结果中have_ssl的值为YES即代表服务端SSL配置生效。

4. 客户端域名连接测试

客户端连接时指定绑定的域名、CA证书,开启域名校验即可:

mysql -h mysql.yourdomain.com -u 你的数据库用户名 -p --ssl-ca=./ca.crt --ssl-mode=VERIFY_IDENTITY

其中--ssl-mode=VERIFY_IDENTITY参数会强制校验服务端证书的域名与访问域名是否匹配,可防范中间人攻击,是安全性最高的连接模式。

可选:配置用户强制域名SSL访问

如需指定某个用户必须通过域名SSL连接,可在MySQL中修改用户权限规则:

ALTER USER '你的用户名'@'%' REQUIRE SUBJECT '/CN=mysql.yourdomain.com';
-- 如需同时校验CA签发信息,可使用以下配置
-- ALTER USER '你的用户名'@'%' REQUIRE ISSUER '/CN=你的CA名称' SUBJECT '/CN=mysql.yourdomain.com';
FLUSH PRIVILEGES;

内容的提问来源于stack exchange,提问作者Olivia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 09:24:04