首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis 6 TLS支持和Redis哨兵

Redis 6 TLS支持和Redis哨兵
EN

Stack Overflow用户
提问于 2020-04-20 16:34:11
回答 2查看 4K关注 0票数 1

我想建立一个基本的3节点Redis哨兵设置使用新的TLS功能的Redis 6。不幸的是,它似乎不像Redis 6哨兵聪明到足以与客户说TLS。

有没有人知道这样做的方法,或者如果它是不可能的,如果网上有任何关于在未来增加对此的支持的地方?拥有这些优秀的TLS特性,却无法使用Redis自己的工具,这似乎是一件令人遗憾的事情。

我知道,在过去,人们使用Stunnel来做这件事。随着TLS的支持被添加到Redis中,我只有在不需要第三方添加的情况下才有兴趣这样做。

我的设置:

3台Redis服务器(6.0-rc,上周最后一次推出),运行带有测试证书如Redis文档中所指定的的TLS -一个主服务器和2个副本

3哨兵(6.0-rc,也是上周最后一次拉),没有在他们的端口上运行TLS (我很想,但这是第二个问题)

我尝试过的:

  1. 将哨兵指向Redis TLS端口--这会导致Redis的日志中出现大量TLS错误,因为Sentinel没有对Redis进行TLS。既然失败了,哨兵认为主人倒下了。
  2. 在主IP前面的哨兵配置中添加"https://“”--这会导致哨兵拒绝运行,说它找不到主主机名。
  3. 将TLS选项添加到Sentinel --这会导致Sentinel试图在其端口上讨论TLS,但对客户端没有帮助。我找不到任何具体的选择,让哨兵对客户说TLS。
  4. 将哨兵指向Redis not-TLS端口(不理想,我宁愿只打开TLS端口)--这会导致Sentinel向我正在测试的简单Python客户端报告错误的(非- TLS )端口(它实际上只是试图从哨兵那里获取主信息)--我希望客户端通过TLS与Redis交谈,原因很明显。
  5. 将“复制-公告-端口”指令添加到Redis,Sentinel仍然指向非- TLS端口-这在两种方式中失败:主端口仍然被错误地报告为非- TLS端口(似乎是因为主端口不是副本,因此指令不适用),而哨兵现在认为副本都被关闭了(因为TLS端口被报告,复制被自动发现,并且它不能与TLS端口上的副本说话)。

我知道这个StackOverflow问题(Redis和TLS) --它很古老,询问Redis 4,所以它不一样。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-26 17:31:49

我确实知道了这一点,并忘了在前面发布答案:我遗漏的部分是,我需要在Redis和Sentinel服务器上设置tls-replication yes选项。

以前,我只在Redis服务器上设置它,因为它们是唯一需要在TLS上进行复制的服务器。但出于某种原因,这一特殊的选择才是使哨兵真正对Redis说TLS所需要的。

因此,总的来说,对于TLS选项,方程的两边都需要:

代码语言:javascript
复制
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
票数 3
EN

Stack Overflow用户

发布于 2020-05-25 13:01:36

尝试将tls-port选项添加到sentinel.conf中,因为它似乎启用了一般的TLS支持,这在文档中也有说明。对我来说,下面两个添加到TLS配置其余部分顶部的sentinel.conf语句实际上起到了这个作用。

tls-端口26379

端口0

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61327471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档