

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 valkey-cli 透過傳輸中加密連線至 ElastiCache (Valkey) 或 Amazon ElastiCache for Redis OSS
<a name="connect-tls"></a>

若要從啟用傳輸中加密的 ElastiCache for Redis OSS 快取存取資料，您可以使用使用 Secure Socket Layer (SSL) 的用戶端。您也可以在 Amazon Linux 和 Amazon Linux 2 上使用 valkey-cli 搭配 TLS/SSL。如果您的用戶端不支援 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。在此範例中，主要 設定為連接埠 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 密碼，則此範例會使用 valkey-cli，在 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 密碼，此範例會使用 valkey-cli，在 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 密碼，則此範例會使用 valkey-cli，在 Amazon Linux 上使用 valkey-cli 的完整路徑連線至 ElastiCache for Redis OSS 伺服器：

     ```
     src/valkey-cli -h localhost -p 6379
     ```

     如果在 Redis OSS 叢集建立期間使用 AUTH 密碼，則此範例會使用 valkey-cli，在 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 通道，請執行 `pkill` stunnel 程序。

   ```
   sudo pkill stunnel
   ```