本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Ruby 的 S AWS DK 中强制使用最低 TLS 版本
AWS 适用于 Ruby AWS 的 SDK 与之间的通信使用安全套接字层 (SSL) 或传输层安全 (TLS) 进行保护。所有版本的 SSL 以及 1.2 之前的 TLS 版本都存在漏洞,这些漏洞可能会危及您与之通信的安全性 AWS。因此,您应确保将适用于 Ruby 的 AWS SDK 与支持 TLS 1.2 或更高版本的 Ruby 版本一起使用。
Ruby 使用 OpenSSL 库来保护 HTTP 连接。通过系统程序包管理器yum
、apt
等)、官方安装程序
当与 OpenSSL 1.0.1 或更高版本的 Ruby 支持版本一起使用时, AWS 适用于 Ruby 的 SDK 更喜欢 TLS 1.2,并使用客户端和服务器都支持的最新版本的 SSL 或 TLS。这始终至少是 TLS 1.2 AWS 服务。(此 SDK 将使用 use_ssl=true
的 Ruby Net::HTTP
类。)
检查 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"]'
输出应包含指示 OpenSSL 安装位置的 --with-openssl-dir=/path/to/openssl
。记下此路径。要检查 OpenSSL 的版本,请输入以下命令。
cd /path/to/openssl bin/openssl version
后一种方法可能不适用于所有 Ruby 安装。
升级 TLS 支持
如果您的 Ruby 安装使用的是 1.0.1 版之前的 OpenSSL 版本,请使用系统程序包管理器、Ruby 安装程序或 Ruby 管理器升级 Ruby 或 OpenSSL 安装,如 Ruby 的安装指南./configure
时通过 --with-openssl-dir=/path/to/upgraded/openssl
。