

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

# 在適用於 Ruby 的 AWS SDK 中強制執行最低 TLS 版本
<a name="tls-version"></a>

適用於 Ruby 的 AWS SDK 與 之間的通訊 AWS 會使用 Secure Sockets Layer (SSL) 或 Transport Layer Security (TLS) 進行保護。所有版本的 SSL 和早於 1.2 的 TLS 都有漏洞，可能會危及您與 通訊的安全性。 AWS因此，您應該確保使用適用於 Ruby 的 AWS 開發套件搭配支援 TLS 1.2 版或更新版本的 Ruby 版本。

Ruby 使用 OpenSSL 程式庫來保護 HTTP 連線。透過系統[套件管理員](https://www.ruby-lang.org/en/documentation/installation/#package-management-systems) (`yum`、 等）`apt`、[官方安裝程式](https://www.ruby-lang.org/en/documentation/installation/#installers)或 Ruby [管理員](https://www.ruby-lang.org/en/documentation/installation/#managers) (rbenv、RVM 等） 安裝的 Ruby 支援版本 (1.9.3 及更新版本） 通常會包含 OpenSSL 1.0.1 或更新版本，以支援 TLS 1.2。

當與支援版本的 Ruby 搭配 OpenSSL 1.0.1 或更新版本搭配使用時，適用於 Ruby 的 AWS SDK 偏好 TLS 1.2，並使用用戶端和伺服器支援的最新版本 SSL 或 TLS。這一律至少適用於 TLS 1 AWS 服務.2。（開發套件搭配 使用 Ruby `Net::HTTP`類別`use_ssl=true`。)

## 檢查 OpenSSL 版本
<a name="checking-the-openssl-version"></a>

若要確保您安裝的 Ruby 是使用 OpenSSL 1.0.1 或更新版本，請輸入下列命令。

```
ruby -r openssl -e 'puts OpenSSL::OPENSSL_VERSION'
```

取得 OpenSSL `openssl` 版本的替代方法是直接查詢可執行檔。首先，使用以下命令找到適當的可執行檔。

```
ruby -r rbconfig -e 'puts RbConfig::CONFIG["configure_args"]'
```

輸出應該會`--with-openssl-dir=/path/to/openssl`指出 OpenSSL 安裝的位置。請記下此路徑。若要檢查 OpenSSL 的版本，請輸入下列命令。

```
cd /path/to/openssl
bin/openssl version
```

此後者方法可能無法用於 Ruby 的所有安裝。

## 升級 TLS 支援
<a name="upgrading-tls-support"></a>

如果您的 Ruby 安裝使用的 OpenSSL 版本早於 1.0.1，請使用您的系統套件管理員、Ruby 安裝程式或 Ruby 管理員升級您的 Ruby 或 OpenSSL [安裝，如 Ruby 安裝指南](https://www.ruby-lang.org/en/documentation/installation/)中所述。如果您要[從來源](https://www.ruby-lang.org/en/documentation/installation/#building-from-source)安裝 Ruby，請先安裝[最新的 OpenSSL](https://www.openssl.org/source/)，然後在執行 `--with-openssl-dir=/path/to/upgraded/openssl`時傳遞`./configure`。