【发布时间】: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 不起作用的原因吗?
谢谢
威尔
【问题讨论】: