强制实施最低 TLS 版本AmazonSDK for Ruby - 适用于 Ruby 的 Amazon 开发工具包
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

强制实施最低 TLS 版本AmazonSDK for Ruby

之间的通信AmazonSDK for RubyAmazon使用安全套接字层 (SSL) 或传输层安全性 (TLS) 保护。所有 SSL 版本以及 1.2 之前的 TLS 版本都存在漏洞,这些漏洞可能会危及您与之通信的安全性Amazon. 因此,您应该确保使用的是Amazon适用于 Ruby 的开发工具包,支持 TLS 1.2 版或更高版本。

Ruby 使用 OpenSSL 库来保护 HTTP 连接。支持通过系统安装的 Ruby 版本(1.9.3 及更高版本)包管理器(yum,apt,等等),官方安装程序,或Ruby经理们(rbenv、RVM 等)通常包含支持 TLS 1.2 的 OpenSSL 1.0.1 或更高版本。

当与支持 OpenSSL 1.0.1 或更高版本的 Ruby 版本一起使用时,AmazonSDK for Ruby 更喜欢 TLS 1.2,并使用客户端和服务器都支持的最新版本的 SSL 或 TLS。对于的 TLS 1.2Amazon服务。(开发工具包使用 RubyNet::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 管理器升级 Ruby 或 OpenSSL 安装安装指南. 如果你正在安装 Ruby来自源的,安装最新的 OpenSSL首先,然后通过--with-openssl-dir=/path/to/upgraded/openssl跑步时./configure.