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

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

在中使用 TLS 1.2AmazonSDK for Ruby

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

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

将与 OpenSSL 1.0.1 或更高版本一起使用时,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 或 OpenSSL 安装,如 Ruby安装指南. 如果您安装 Ruby从源,安装最新 OpenSSL首先,然后通过--with-openssl-dir=/path/to/upgraded/openssl运行时./configure.