首页/数据/数据库速查/复制链路加密(SOURCE_SSL 系列)
主从复制与高可用53 条

复制链路加密(SOURCE_SSL 系列)

跨公网/跨安全域复制必须加密:CHANGE REPLICATION SOURCE TO 里配 SOURCE_SSL=1 与 CA 校验(SOURCE_SSL_VERIFY_SERVER_CERT),或用私有 CA 双向验证。

数据库速查数据更新于 2026-10-13

复制链路加密是什么

跨公网或跨安全域的复制必须在传输层加密,否则账号口令与全部行数据都以明文在网络里流动。MySQL 8.0 在 CHANGE REPLICATION SOURCE TO 里提供 SOURCE_SSL 系列参数:只写 SOURCE_SSL=1 可以开启加密但不校验服务端身份,加上 CA 文件与 SOURCE_SSL_VERIFY_SERVER_CERT=1 才能防中间人。8.0 默认认证插件 caching_sha2_password 还要求安全传输,加密链路同时解决了认证握手的兼容问题。

基本信息

基础开关SOURCE_SSL=1,启用加密但不校验证书
CA 校验SOURCE_SSL_CA='/路径/ca.pem'
身份校验SOURCE_SSL_VERIFY_SERVER_CERT=1,校验证书主机名是否匹配
客户端证书SOURCE_SSL_CERT / SOURCE_SSL_KEY 用于双向认证
检查方式SHOW REPLICA STATUS 无 SSL 相关错误;连接上的 Ssl_cipher 非空

典型使用场景

  • 跨公网复制:两地机房经专线或加密隧道互联时,链路层再叠加 TLS
  • 跨安全域同步:生产与测试网络有防火墙隔离,认证与数据都需加密
  • 合规要求:审计要求明确禁止明文传输数据库流量
  • 证书轮换准备:把证书有效期纳入统一监控,避免过期导致复制中断
  • 云上实例互联:云厂商要求加密连接时按说明配置 CA 与校验参数

启用 TLS 复制

启用 TLS 复制
-- 最小可用:加密但不校验服务端身份
CHANGE REPLICATION SOURCE TO
  SOURCE_HOST='10.0.0.10', SOURCE_USER='repl', SOURCE_PASSWORD='***',
  SOURCE_SSL=1,
  SOURCE_AUTO_POSITION=1;
-- 推荐做法:提供 CA 并开启服务端证书校验
CHANGE REPLICATION SOURCE TO
  SOURCE_HOST='10.0.0.10', SOURCE_USER='repl', SOURCE_PASSWORD='***',
  SOURCE_SSL=1,
  SOURCE_SSL_CA='/etc/mysql/certs/ca.pem',
  SOURCE_SSL_VERIFY_SERVER_CERT=1,
  SOURCE_AUTO_POSITION=1;
-- 检查复制状态与是否报出 TLS 相关错误
SHOW REPLICA STATUS\G

配置强度对照

配置加密防中间人适用场景
不配 SOURCE_SSL无无仅限完全可信的内网
SOURCE_SSL=1有无临时过渡,证书体系未就绪时
+ SOURCE_SSL_CA有校验 CA 签发链自建 CA 的内部环境
+ VERIFY_SERVER_CERT=1有校验证书主机名跨公网、跨安全域的标准做法
8.0 默认的 caching_sha2_password 首次认证需要安全通道(RSA 密钥交换或 TLS),复制链路启用 TLS 后这类认证报错通常一并消失。
证书过期会让复制戛然而止,且在证书有效期临近时往往先表现为间歇性失败。把 CA 与服务端证书的到期时间纳入监控,并预留轮换演练时间。

易错点

  • 只配 SOURCE_SSL=1 就以为安全:链路加密了但身份不校验,中间人仍可冒充源库,跨公网场景必须加 CA 校验
  • 证书路径或权限写错:mysqld 进程读不到证书文件时复制直接启动失败,部署前用同一账号验证文件可读
  • CA 证书轮换后不同步从库:源端换了签发链,从库仍用旧 CA 校验,表现为复制突然失败
  • 把校验开关与主机名混为一谈:CA 校验通过但主机名不匹配时校验仍会失败,证书 SAN 要包含从库实际使用的地址
  • 以为加密能替代最小权限:加密解决传输安全,账号权限与网络访问控制仍然必须独立配置

数据来源与参考

  • MySQL 8.0 Reference Manual: Replication with SSL
  • MySQL 8.0 Reference Manual: CHANGE REPLICATION SOURCE TO

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌