使用 DynamoDB 解决 SSL/TLS 连接建立问题 - Amazon DynamoDB

使用 DynamoDB 解决 SSL/TLS 连接建立问题

Amazon DynamoDB 将我们的端点转移到通过 Amazon Trust Services(ATS)证书颁发机构(而不是第三方证书颁发机构)签署的安全证书。2017 年 12 月,我们启动了采用 Amazon Trust Services 颁发的安全证书的 EU-WEST-3(巴黎)区域。2017 年 12 月之后推出的所有新区域的端点都具有 Amazon Trust Services 颁发的证书。本指南介绍如何验证 SSL/TLS 连接和排除故障。

测试您的应用程序或服务

大多数 AWS SDK 和命令行接口(CLI)支持 Amazon Trust Services 证书颁发机构。如果您使用的是 2013 年 10 月 29 日之前发布的 AWS SDK for Python 或 CLI 版本,则必须升级。.NET、Java、PHP、Go、JavaScript 和 C++ SDK 和 CLI 不捆绑任何证书,它们的证书来自底层操作系统。2015 年 6 月 10 日以来,Ruby SDK 至少包含了一个需要的 CA。在此日期之前,Ruby V2 SDK 没有捆绑证书。如果您使用的是不受支持的、自定义或修改版本的 AWS SDK,或者如果您使用自定义信任存储,则可能没有 Amazon Trust Services 证书颁发机构所需的支持。

要验证对 DynamoDB 端点的访问,您需要开发一个测试,以访问 EU-WEST-3 区域中的 DynamoDB API 或 DynamoDB Streams API,并验证 TLS 握手是否成功。在此类测试中,您需要访问的具体端点是:

如果您的应用程序不支持 Amazon Trust Services 证书颁发机构,您将遇到以下故障或错误讯息:

  • SSL/TLS 协商错误

  • 长时间延迟后,软件收到错误,指示 SSL/TLS 协商失败。延迟时间取决于客户端的重试策略和超时配置。

测试您的客户端浏览器

要检验您的浏览器是否可以连接到 Amazon DynamoDB,请打开下面的 URL:https://dynamodb.eu-west-3.amazonaws.com。如果测试成功,您将看到如下消息:

healthy: dynamodb.eu-west-3.amazonaws.com

如果测试失败,将显示类似以下内容的错误:https://untrusted-root.badssl.com/

更新软件应用程序客户端

访问 DynamoDB 或 DynamoDB Streams API 端点的应用程序(无论是通过浏览器还是以编程方式),如果它们不支持以下任何 CA,将需要更新客户端计算机上的信任 CA 列表:

  • Amazon Root CA 1

  • Starfield Services Root Certificate Authority – G2

  • Starfield Class 2 Certification Authority

如果客户端已经信任上述三个 CA 中的任何一个,则客户端将信任 DynamoDB 使用的证书,不需要执行任何操作。但是,如果您的客户端尚未信任上述任何 CA,则与 DynamoDB 或 DynamoDB Streams API 的 HTTPS 连接将失败。有关更多信息,请访问下面的博客帖子:https://aws.amazon.com/blogs/security/how-to-prepare-for-aws-move-to-its-own-certificate-authority/

更新您的客户端浏览器

您只需更新浏览器即可在浏览器中更新证书捆绑包。可以在浏览器网站上找到最常用浏览器的说明:

手动更新证书捆绑包

如果您无法访问 DynamoDB API 或 DynamoDB Streams API,则需要更新证书捆绑包。为此,您需要至少导入一个需要的 CA。可以在 https://www.amazontrust.com/repository/ 找到。

以下操作系统和编程语言支持 Amazon Trust Services 证书:

  • 安装了 2005 年 1 月或更高版本更新的 Microsoft Windows 版本、Windows Vista、Windows 7、Windows Server 2008 及更新版本。

  • 具有 Java for MacOS X 10.4 Release 5 的 MacOS X 10.4、MacOS X 10.5 及更新版本。

  • Red Hat Enterprise Linux 5(2007 年 3 月版)、Linux 6 和 Linux 7 以及 CentOS 5、CentOS 6 和 CentOS 7

  • Ubuntu 8.10

  • Debian 5.0

  • Amazon Linux(所有版本)

  • Java 1.4.2_12、Java 5 更新 2 和所有更新版本,包括 Java 6、Java 7 和 Java 8

如果您仍然无法连接,请查阅软件文档、联系操作系统供应商或联系 AWS 支持人员(https://aws.amazon.com/support),来获得进一步协助。