本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在適用於 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 搭配 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 安裝指南--with-openssl-dir=/path/to/upgraded/openssl
時傳遞./configure
。