在哪里可以找到elasticache redis集群的TLS证书

Yog*_*war 5 ssl openssl redis amazon-elasticache tls1.2

作为 Elasticache 的新手,我正在尝试从在不同 VPC 中运行的实例连接到它。当客户端位于基于 TLS 的 VPC 内时,它工作得很好,因为不需要传递 TLS 证书。(我们只需要向 redis-cli 传递“--tls”选项)。同样,当我尝试从另一个 VPC 中运行的 redis-cli 执行操作时,它不会工作。

注意:-在这里,我已使用 VPC 对等互连建立连接,如其文档中所述。通过将“--insecure”选项传递给 redis-cli 来验证它。

root@e142187efd96:/data# redis-cli -c --tls -h HOST -a asdfghjklzxcvbnm --insecure
警告:在命令行界面上使用带“-a”或“-u”选项的密码可能不安全。主机:6379>

openssl我使用以下命令获得了我的 elasticache 服务器的证书-

openssl s_client -showcerts -connect HOST:6379
Run Code Online (Sandbox Code Playgroud)

将获得的证书传递给 redis-client 作为 -

redis-cli -c --tls -h HOST -a asdfghjklzxcvbnm --cacert cert.crt
Run Code Online (Sandbox Code Playgroud)

它抛出以下错误 -

Could not negotiate a TLS connection: Invalid CA Certificate File/Directory
Could not negotiate a TLS connection: Invalid CA Certificate File/Directory
not connected>
Run Code Online (Sandbox Code Playgroud)

根据我的理解,我还需要通过证书和密钥。但我不知道在哪里可以找到它以及如何通过它。

小智 7

对于 AWS Elasticache,您不需要将--cacert值显式传递到您的redis-cli.

这里重要的部分是注册正确的通用 CA 证书,您可以通过以下方式在客户端系统上执行此操作:

# Debian example
apt-get install ca-certificates
Run Code Online (Sandbox Code Playgroud)

安装完成后,您可以运行:

redis-cli --tls -h <elasticache-host> -a <authstring>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。