

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

# 在 Ruby 的 S Amazon DK 中强制使用最低 TLS 版本
<a name="tls-version"></a>

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

Ruby 使用 OpenSSL 库来保护 HTTP 连接。通过系统[程序包管理器](https://www.ruby-lang.org/en/documentation/installation/#package-management-systems)（`yum`、`apt` 等）、[官方安装程序](https://www.ruby-lang.org/en/documentation/installation/#installers)或 Ruby [管理器](https://www.ruby-lang.org/en/documentation/installation/#managers)（rbenv、RVM 等）安装的受支持 Ruby 版本（1.9.3 及更高版本）通常使用 OpenSSL 1.0.1 或更高版本，这些版本支持 TLS 1.2。

当与 OpenSSL 1.0.1 或更高版本的 Ruby 支持版本一起使用时， Amazon 适用于 Ruby 的 SDK 更喜欢 TLS 1.2，并使用客户端和服务器都支持的最新版本的 SSL 或 TLS。这始终至少是 TLS 1.2 Amazon Web Services 服务。（此 SDK 将使用 `use_ssl=true` 的 Ruby `Net::HTTP` 类。）

## 检查 OpenSSL 版本
<a name="checking-the-openssl-version"></a>

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

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

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

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

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

```
cd /path/to/openssl
bin/openssl version
```

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

## 升级 TLS 支持
<a name="upgrading-tls-support"></a>

如果您的 Ruby 安装使用的是 1.0.1 版之前的 OpenSSL 版本，请使用系统程序包管理器、Ruby 安装程序或 Ruby 管理器升级 Ruby 或 OpenSSL 安装，如 Ruby 的[安装指南](https://www.ruby-lang.org/en/documentation/installation/)中所述。如果您要[从源代码](https://www.ruby-lang.org/en/documentation/installation/#building-from-source)安装 Ruby，请先安装[最新的 OpenSSL](https://www.openssl.org/source/)，然后在运行 `./configure` 时通过 `--with-openssl-dir=/path/to/upgraded/openssl`。