在適用於 Ruby 的 AWS SDK 中強制執行最低 TLS 版本 - AWS 適用於 Ruby 的 SDK

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

在適用於 Ruby 的 AWS SDK 中強制執行最低 TLS 版本

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

Ruby 使用 OpenSSL 程式庫來保護 HTTP 連線。透過系統套件管理員 (yum、 等)apt官方安裝程式或 Ruby 管理員 (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 版本

若要確定您的 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 支援

如果您的 Ruby 安裝使用的 OpenSSL 版本早於 1.0.1,請使用您的系統套件管理員、Ruby 安裝程式或 Ruby 管理員來升級 Ruby 或 OpenSSL 安裝,如 Ruby 安裝指南中所述。如果您要從來源安裝 Ruby,請先安裝最新的 OpenSSL,然後在執行 --with-openssl-dir=/path/to/upgraded/openssl時傳遞./configure