在 this AWS Product or Service 中使用 TLS 1.2 - 适用于 Ruby 的 AWS 开发工具包
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

在 this AWS Product or Service 中使用 TLS 1.2

使用安全套接字层 (SSL) 或传输层安全性 (TLS) 保护 AWS SDK for Ruby 和 AWS 之间的通信。SSL 的所有版本以及 1.2 之前的 TLS 版本都存在可能损害您与 AWS 的通信安全性的漏洞。因此,您应该确保将 AWS SDK for Ruby 与支持 TLS 1.2 或更高版本的 Ruby 版本结合使用。

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

在与支持的 Ruby 版本以及 OpenSSL 1.0.1 或更高版本一起使用时,AWS SDK for Ruby首选 TLS 1.2,并使用客户端和服务器均支持的最新版本的 SSL 或 TLS。对于 AWS 服务,这始终至少为 TLS 1.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