【问题标题】:Redis 6 with TLS带 TLS 的 Redis 6
【发布时间】:2021-01-12 16:56:07
【问题描述】:

我正在尝试让 Redis 6(在编译期间启用 TLS,编译后的测试成功)工作。我正在使用 Lets Encrypt 证书和以下配置:

tls-port 63790
tls-cert-file /etc/letsencrypt/live/myserver.net/cert.pem
tls-key-file /etc/letsencrypt/live/myserver.net/privkey.pem
tls-ca-cert-dir /etc/letsencrypt/live/myserver.net/
tls-auth-clients no
tls-protocols "TLSv1.2 TLSv1.3"

以及来自本地主机的这个客户端命令

redis-cli --tls --cert /etc/letsencrypt/live/myserver.net/cert.pem --key /etc/letsencrypt/live/myserver.net/privkey.pem --cacert /etc/letsencrypt/live/myserver.net/fullchain.pem -h myserver.net -p 63790 -a password

警告:在命令行界面上使用带有“-a”或“-u”选项的密码可能不安全。 无法在 myserver.net:63790 连接到 Redis:SSL_connect 失败:证书验证失败

这是redis日志的输出: 接受客户端连接时出错:error:14094418:SSLroutines:ssl3_read_bytes:tlsv1 alert unknown ca

当我使用具有相同证书的 openssl 客户端时,我能够连接并从 Redis 服务器获得 ping 回复

无论我是否改变

tls-ca-cert-dir /etc/letsencrypt/live/myserver.net/

tls-ca-cert 

在服务器端 要么 --cacert /etc/letsencrypt/live/myserver.net/fullchain.pem 到客户端的chain.pem 我尝试了所有版本的

tls-protocols ""

改变

tls-auth-clients no

tls-auth-clients optional

但我仍然遇到同样的错误

OpenSSL 版本为 1.1.1 Redis 版本是 6.0.8 操作系统:Ubuntu 20.04

您能帮我找出 TLS 不起作用的原因吗?

谢谢

威尔

【问题讨论】:

    标签: ssl redis tls1.2


    【解决方案1】:

    啊,解决了! 我放错了 CA 链。我必须将从 LE 网站下载的根证书和中间证书链接到新文件中。对于有同样问题的人来说,它可能会派上用场。

    【讨论】:

    • 你应该选择你自己的答案作为接受的答案。
    • 这家伙忘了解决办法
    • fullchain.pem 是不够的。从这里获取根 + 中间证书并将它们附加到同一个 pem 文件中:letsencrypt.org/certificates
    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 2021-04-26
    • 1970-01-01
    • 2020-06-24
    • 2015-12-01
    • 1970-01-01
    • 2021-12-18
    • 2020-10-17
    相关资源
    最近更新 更多