首页/数据/数据库速查/TLS 加密连接配置要点
Redis 运维与场景124 条

TLS 加密连接配置要点

Redis 6+ 支持 TLS:配置 tls-port/tls-cert-file/tls-key-file/tls-ca-cert-file,客户端用 --tls 连接;证书与端口规划要提前定。

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

Redis TLS 加密连接是什么

Redis 6.0 起原生支持 TLS:服务端配置 tls-port 监听加密端口,配合证书、私钥与 CA 文件;客户端连接时用 --tls 并指定 CA。迁移过程中最常见的问题不是业务连接,而是复制链路与哨兵/集群监控还在用明文端口——只要链路两端配置不齐,复制就建不起来。

基本信息

适用版本Redis 6.0+,需编译或发行版包含 TLS 支持
服务端参数tls-port、tls-cert-file、tls-key-file、tls-ca-cert-file
双向认证tls-auth-clients yes(默认启用客户端证书校验)
客户端连接redis-cli --tls --cacert <ca> -p <tls-port>
链路要求复制、哨兵、集群总线均需各自的 TLS 配置
证书管理有效期监控与轮换流程必须预先规划

典型使用场景

  • 合规要求:数据链路必须加密,禁止明文传输
  • 跨机房或跨云访问:经不可信网络时降低泄露风险
  • 多租户环境:为不同业务方提供独立证书与权限
  • 客户端证书认证:把连接身份校验从密码扩展到证书
  • 逐步迁移:明文端口与 TLS 端口并存,分批切换客户端

服务端配置

服务端配置
# 监听 TLS 端口,明文端口按需保留或关闭
tls-port 6380
port 0

tls-cert-file /etc/redis/tls/redis.crt
tls-key-file  /etc/redis/tls/redis.key
tls-ca-cert-file /etc/redis/tls/ca.crt
tls-auth-clients yes        # 要求客户端提供证书(双向认证)
tls-protocols "TLSv1.2 TLSv1.3"

客户端与复制链路配置

客户端与复制链路配置
# 客户端连接验证
redis-cli --tls --cacert /etc/redis/tls/ca.crt -p 6380 PING

# 带客户端证书(双向认证时)
redis-cli --tls --cacert /etc/redis/tls/ca.crt \
  --cert /etc/redis/tls/client.crt --key /etc/redis/tls/client.key -p 6380 PING

# 复制链路同样要加 TLS:在从库执行
# REPLICAOF 之前先在配置中声明 tls-replication yes,并配置 tls-cert-file / tls-key-file / tls-ca-cert-file

要点对照

项做法注意
服务端监听tls-port + 证书三件套证书链要与 CA 匹配,否则客户端校验失败
客户端认证tls-auth-clients yes/no关闭则不校验客户端证书,单向加密
复制链路tls-replication yes + 证书参数从库也要配置,否则复制建不起来
证书轮换提前生成新证书并分批替换过期当天会导致全链路互信中断
性能复用连接、启用会话复用TLS 握手有开销,短连接场景更明显
迁移常见坑是「只改了客户端与服务端的连接地址」:复制、哨兵监控、集群总线各有一套自己的 TLS 开关,必须成套配置并逐一验证,否则会出现业务能连、复制不通的割裂状态。
证书有效期必须纳入监控:过期当天所有节点互信同时中断,表现为大面积连接失败与复制中断,且恢复要等到证书替换完成;建议提前一个月预警并演练轮换流程。

易错点

  • 只给业务端口上 TLS:复制端口仍明文,审计不过关且存在明文数据传输
  • 从库未开 TLS 却连向 TLS 主库:复制无法建立,日志报握手失败
  • 证书过期无监控:到期当天集群内互信全断,故障面很大
  • 私钥文件权限过宽:任何有读权限的进程都能冒充服务端
  • 忘记集群总线端口(cluster bus)也要加密:节点间通信仍为明文

数据来源与参考

  • Redis 官方文档: TLS

相关工具

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