

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 valkey-cli 连接到使用传输中加密的 ElastiCache（Valkey）或 Amazon ElastiCache for Redis OSS
<a name="connect-tls"></a>

要访问启用了传输中加密的 ElastiCache for Redis OSS 缓存中的数据，您可以使用利用安全套接字层（SSL）的客户端。您也可以在 Amazon Linux 和 Amazon Linux 2 上使用具有 TLS/SSL 的 valkey-cli。如果您的客户端不支持 TLS，则可以在客户端主机上，使用 `stunnel` 命令创建连接到 Redis OSS 节点的 SSL 隧道。

## 与 Linux 的加密连接
<a name="connect-tls.linux"></a>

要使用 valkey-cli 连接到 Amazon Linux 2 或 Amazon Linux 上启用了传输中加密的 Valkey 或 Redis OSS 集群，请按照以下步骤操作。

1. 下载并编译 valkey-cli 实用工具。此实用工具包含在 Valkey 软件发布版中。

1. 在 EC2 实例的命令提示符处，键入适合您所用 Linux 版本的相应命令。

   ** 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/8.0.0.tar.gz
   tar xvzf valkey-8.0.0.tar.gz
   cd valkey-8.0.0
   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
   ```

1. 下载并安装 valkey-cli 实用程序后，建议运行可选的 `make-test` 命令。

1. 要连接到已启用加密和身份验证的集群，请输入以下命令：

   ```
   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 的加密连接
<a name="connect-tls.stunnel"></a>

要使用 valkey-cli 连接到使用 stunnel 进行传输中加密的 Redis OSS 集群，请按以下步骤操作。

1. 使用 SSH 连接到您的客户端并安装 `stunnel`。

   ```
   sudo yum install stunnel
   ```

1. 运行以下命令创建并同时编辑文件 `'/etc/stunnel/valkey-cli.conf'`，以下面提供的输出为模板，将一个 ElastiCache for 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 用户指南*中的[临时端口](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html#VPC_ACLs_Ephemeral_Ports)。
   + **connect** 设置为 Redis OSS 服务器端点。有关更多信息，请参阅 [查找 ElastiCache 中的缓存连接端点](Endpoints.md)。

1. 启动 `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
   ```

1. 使用隧道的本地端点连接到加密的 Redis OSS 节点。
   + 如果在创建 ElastiCache for Redis OSS 集群时未使用 AUTH 密码，此示例将在 Amazon Linux 上使用 valkey-cli 通过其完整路径连接到 ElastiCache for 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 for Redis OSS 集群时未使用 AUTH 密码，此示例将在 Amazon Linux 上使用 valkey-cli 通过其完整路径连接到 ElastiCache for 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
   ```

1. 要停止并关闭 SSL 隧道，请对 Stunnel 过程执行 `pkill` 操作。

   ```
   sudo pkill stunnel
   ```