在 Ruby 中强制 Amazon SDK使用最低TLS版本 - Amazon SDK对于 Ruby
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在 Ruby 中强制 Amazon SDK使用最低TLS版本

f Amazon SDK or Ruby 与 Amazon 之间的通信使用安全套接字层 (SSL) 或传输层安全 (TLS) 进行保护。的所有版本和低SSL于 1.2 的TLS版本都存在漏洞,这些漏洞可能会危及您与之通信的安全性 Amazon。因此,您应确保将 for Ruby 与支持 1.2 或更高版本的 Ruby TLS 版本一起使用。 Amazon SDK

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

当与 Open SSL 1.0.1 或更高版本的 Ruby 支持版本一起使用时,for Ruby 首选 TLS 1.2,并使用最新版本SSL或客户端和服务器都TLS支持。 Amazon SDK这始终至少为 TLS 1.2 Amazon Web Services 服务。(SDK使用了 Ruby Net::HTTP 类和use_ssl=true。)

正在检查打开SSL版本

要确保您安装的 Ruby 使用的是 Open SSL 1.0.1 或更高版本,请输入以下命令。

ruby -r openssl -e 'puts OpenSSL::OPENSSL_VERSION'

获取 Open SSL 版本的另一种方法是直接查询openssl可执行文件。首先,使用以下命令查找适当的可执行文件。

ruby -r rbconfig -e 'puts RbConfig::CONFIG["configure_args"]'

输出应--with-openssl-dir=/path/to/openssl指示 Open SSL 安装的位置。记下此路径。要检查 Open 的版本SSL,请输入以下命令。

cd /path/to/openssl bin/openssl version

后一种方法可能不适用于所有 Ruby 安装。

升级TLS支持

如果您的 Ruby 安装所SSL使用的 Open 版本低于 1.0.1,请按照 Ruby SSL 安装指南中所述,使用系统包管理器、Ruby 安装程序或 Ruby 管理器升级 Ruby 或 Open 安装。如果要从源代码安装 Ruby,请SSL先安装最新的 Open,然后--with-openssl-dir=/path/to/upgraded/openssl在运行时通过./configure