使用 valkey-cli 连接到使用传输中加密的 ElastiCache(Valkey)或 Amazon ElastiCache(Redis OSS)
要访问启用了传输中加密的 ElastiCache(Redis OSS)缓存中的数据,您可以使用支持安全套接字层(SSL)的客户端。您也可以在 Amazon Linux 和 Amazon Linux 2 上使用具有 TLS/SSL 的 valkey-cli。如果您的客户端不支持 TLS,则可以在客户端主机上,使用 stunnel
命令创建连接到 Redis OSS 节点的 SSL 隧道。
与 Linux 的加密连接
要使用 valkey-cli 连接到 Amazon Linux 2023、Amazon Linux 2 或 Amazon Linux 上启用了传输中加密的 Valkey 或 Redis OSS 集群,请按照以下步骤操作。
下载并编译 valkey-cli 实用工具。此实用工具包含在 Valkey 软件发布版中。
在 EC2 实例的命令提示符处,键入适合您所用 Linux 版本的相应命令。
Amazon Linux 2023
如果使用的是 Amazon Linux 2023,请输入以下命令:
sudo yum install redis6 -y
然后键入以下命令,并使用您集群的端点和端口来替换此示例中显示的相应内容。
valkey-cli -h
Primary or Configuration Endpoint
--tls -p 6379有关查找端点的更多信息,请参阅查找您的节点端点。
Amazon Linux 2
如果使用的是 Amazon Linux 2,请输入以下命令:
sudo yum -y install openssl-devel gcc wget https://github.com/valkey-io/valkey/archive/refs/tags/7.2.6.tar.gz tar xvzf valkey-7.2.6.tar.gz cd valkey-7.2.6 make distclean make valkey-cli BUILD_TLS=yes sudo install -m 755 src/valkey-cli/usr/local/bin/
Amazon Linux
如果使用的是 Amazon Linux,请输入以下命令:
sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel clang wget wget https://github.com/valkey-io/valkey/archive/refs/tags/7.2.6.tar.gz tar xvzf valkey-7.2.6.tar.gz cd valkey-7.2.6 make valkey-cli CC=clang BUILD_TLS=yes sudo install -m 755 src/valkey-cli /usr/local/bin/
在 Amazon Linux 上,您可能还需要执行以下额外步骤:
sudo yum install clang CC=clang make sudo make install
下载并安装 valkey-cli 实用程序后,建议运行可选的
make-test
命令。-
要连接到已启用加密和身份验证的集群,请输入以下命令:
valkey-cli -h
Primary or Configuration Endpoint
--tls -a'your-password'
-p 6379注意
如果您在 Amazon Linux 2023 上安装了 redis6,那么现在可以使用命令
redis6-cli
,而不是使用valkey-cli
:redis6-cli -h Primary or Configuration Endpoint --tls -p 6379
与 stunnel 的加密连接
要使用 valkey-cli 连接到使用 stunnel 进行传输中加密的 Redis OSS 集群,请按以下步骤操作。
-
使用 SSH 连接到您的客户端并安装
stunnel
。sudo yum install stunnel
-
运行以下命令创建并同时编辑文件
'/etc/stunnel/valkey-cli.conf'
,以下面提供的输出结果为模板,以将一个 ElastiCache(Redis OSS)集群端点添加到一个或多个连接参数,并将下面提供的输出用作模板。vi /etc/stunnel/valkey-cli.conf fips = no setuid = root setgid = root pid = /var/run/stunnel.pid debug = 7 delay = yes options = NO_SSLv2 options = NO_SSLv3 [valkey-cli] client = yes accept = 127.0.0.1:6379 connect = primary.ssltest.wif01h.use1.cache.amazonaws.com:6379 [valkey-cli-replica] client = yes accept = 127.0.0.1:6380 connect = ssltest-02.ssltest.wif01h.use1.cache.amazonaws.com:6379
在此示例中,配置文件具有两个连接,即
valkey-cli
和valkey-cli-replica
。参数设置如下所示:-
client 设置为 yes(是)以指定此 Stunnel 实例是客户端。
-
accept 设置为客户端 IP。在此示例中,主 IP 设置为端口 6379 上的 Redis OSS 默认 127.0.0.1。副本必须调用另一个端口并设置为 6380。您可以使用临时端口 1024-65535。有关更多信息,请参阅 Amazon VPC 用户指南中的临时端口。
-
connect 设置为 Redis OSS 服务器端点。有关更多信息,请参阅 查找 ElastiCache 中的缓存连接端点。
-
-
启动
stunnel
。sudo stunnel /etc/stunnel/valkey-cli.conf
使用
netstat
命令确认隧道已启动。sudo netstat -tulnp | grep -i stunnel tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 3189/stunnel tcp 0 0 127.0.0.1:6380 0.0.0.0:* LISTEN 3189/stunnel
-
使用隧道的本地端点连接到加密的 Redis OSS 节点。
-
如果在创建 ElastiCache(Redis OSS)集群时未使用 AUTH 密码,此示例将在 Amazon Linux 上使用 valkey-cli 通过其完整路径连接到 ElastiCache(Redis OSS)服务器:
/home/ec2-user/redis-7.2.5/src/valkey-cli -h localhost -p 6379
如果在创建 Redis OSS 集群时未使用 AUTH 密码,此示例将在 Amazon Linux 上使用 valkey-cli 通过其完整路径连接到 Redis OSS 服务器:
/home/ec2-user/redis-7.2.5/src/valkey-cli -h localhost -p 6379 -a
my-secret-password
或
将目录更改为 redis-7.2.5 并执行以下操作:
如果在创建 ElastiCache(Redis OSS)集群时未使用 AUTH 密码,此示例将在 Amazon Linux 上使用 valkey-cli 通过其完整路径连接到 ElastiCache(Redis OSS)服务器:
src/valkey-cli -h localhost -p 6379
如果在创建 Redis OSS 集群时未使用 AUTH 密码,此示例将在 Amazon Linux 上使用 valkey-cli 通过其完整路径连接到 Valkey 或 Redis OSS 服务器:
src/valkey-cli -h localhost -p 6379 -a
my-secret-password
此示例使用 Telnet 连接到 Valkey Redis OSS 服务器。
telnet localhost 6379 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. auth MySecretPassword +OK get foo $3 bar
-
-
要停止并关闭 SSL 隧道,请对 Stunnel 过程执行
pkill
操作。sudo pkill stunnel