redis 6 tls支持和redis sentinel

polkgigr  于 2021-06-09  发布在  Redis
关注(0)|答案(2)|浏览(570)

我想建立一个基本的3节点redis sentinel设置使用redis 6的新tls功能。不幸的是,redis6sentinel似乎还不够聪明,无法与客户机交谈tls。
有没有人知道这样做的方法,或者如果不可能的话,如果网上有任何关于在将来增加对这个的支持的话?拥有这些好的tls特性,却不能与redis自己的工具一起使用,这似乎是一件很遗憾的事情。
我知道在过去人们用特技来做这件事。随着tls支持添加到redis,我只对这样做感兴趣,如果它可以做没有第三方添加。
我的设置:
3台redis服务器(6.0-rc,上一次在上周启动),运行tls,测试证书在redis文档中指定-一个主服务器和两个副本
3个sentinel(6.0-rc,也是上周拉的),没有在他们的端口上运行tls(我想,但这是第二个问题)
我试过的:
将sentinel指向redis的tls端口-这会导致redis的日志中出现大量关于接收到错误tls版本的tls错误,因为sentinel没有向redis说tls。既然失败了,哨兵认为主人倒下了。
在主ip前面的sentinel配置中添加“https://”-这会导致sentinel拒绝运行,说它找不到主主机名。
将tls选项添加到sentinel-这会导致sentinel尝试在其端口上与tls通信,但不会与客户端通信,这没有帮助。我找不到任何具体的方法让sentinel对客户说tls。
将sentinel指向redis not tls端口(不理想,我宁愿只打开tls端口)-这会导致sentinel向我正在测试的简单python客户机报告主机的错误(不是tls)端口(它实际上只是尝试从sentinel获取主机信息)-我希望客户机通过tls与redis对话,原因很明显
将“replica announce port”指令添加到redis,sentinel仍然指向not tls端口-这有两种方式失败:主端口仍然错误地报告为not tls端口(似乎是因为主端口不是副本,因此该指令不适用),sentinel现在认为复制副本都关闭了(因为tls端口被报告,复制副本被自动发现,并且它不能与tls端口上的复制副本通信)。
我知道这个stackoverflow问题(redis sentinel和tls)-它很老,询问redis 4,所以不一样。

zbdgwd5y

zbdgwd5y1#

我确实弄明白了这一点,但忘了早些时候发布答案:我缺少的一点是我需要设置 tls-replication yes redis和sentinel服务器上的选项。
以前,我只在redis服务器上设置了它,因为它们是唯一需要通过tls进行复制的服务器。但出于某种原因,这种特殊的选择是真正让sentinel向redis说tls所需要的。
因此,总的来说,对于tls选项,等式的两边都需要:

tls-port <port>
port 0
tls-auth-clients yes
tls-ca-cert-file <file>
tls-key-file <file>
tls-cert-file <file>
tls-replication yes
uurv41yg

uurv41yg2#

尝试将tls端口选项添加到sentinel.conf中,因为它似乎在一般情况下启用tls支持,这在文档中也有说明。对我来说,下面两条添加到sentinel.conf的语句实际上是tls配置的一部分。
tls端口26379
端口0

相关问题