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

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

在中使用 TLS 1.2AmazonSDK for Ruby

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

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

当与 OpenSSL 1.0.1 或更高版本结合使用时,AmazonSDK for Ruby 喜欢 TLS 1.2,并使用客户端和服务器都支持的最新版本 SSL 或 TLS。这始终至少是 TLS 1.2Amazon服务。(开发工具包使用 RubyNet::HTTPuse_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