作为elasticache的新手,我正在尝试从运行在不同VPC中的实例连接到它。当客户端通过TLS在VPC内时,它工作得非常好,因为不需要通过TLS证书。(我们只需要将"--tls"选项传递给reds-cli(。同样,当我尝试在另一个VPC中运行rediscli时,它不会起作用。
注意:-在这里,我已经使用他们文档中提到的VPC对等建立了连接。通过"--不安全";选项。
root@e142187efd96:/data#redis cli-c--tls-h HOST-a asdfghjklzxcvbnm--unsecurity
警告:在命令行界面上使用带有"-a"或"-u"选项的密码可能不安全。主持人:6379>
我使用下面的openssl
命令-获得了弹性缓存服务器的证书
openssl s_client -showcerts -connect HOST:6379
将获得的证书作为-传递给redis客户端
redis-cli -c --tls -h HOST -a asdfghjklzxcvbnm --cacert cert.crt
它抛出以下错误-
Could not negotiate a TLS connection: Invalid CA Certificate File/Directory
Could not negotiate a TLS connection: Invalid CA Certificate File/Directory
not connected>
根据我的理解,我还需要通过证书和密钥。但我不知道在哪里能找到它,也不知道如何通过它
对于AWS Elasticache,您不需要显式地将--cacert
值传递给redis-cli
。
这里的重要部分是注册正确的通用CA证书,您可以在您的客户端系统上通过:
# Debian example
apt-get install ca-certificates
一旦你安装了它,你就可以运行:
redis-cli --tls -h <elasticache-host> -a <authstring>
希望这能有所帮助。