Amazon DynamoDB
开发人员指南 (API 版本 2012-08-10)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

排查 SSL/TLS 连接建立问题

Amazon DynamoDB 正在将我们的终端节点转移到使用 Amazon Trust Services (ATS) 证书颁发机构而非第三方证书颁发机构签署的安全证书。2017 年 12 月,我们推出了 EU-WEST-3 (巴黎) 区域,该区域使用 Amazon Trust Services 颁发的安全证书。在 2017 年 12 月之后推出的所有新区域中,其终端节点将使用 Amazon Trust Services 颁发的证书。本教程说明如何验证和排查 SSL/TLS 连接问题。

测试您的应用程序或服务

大多数 AWS 开发工具包和命令行界面 (CLI) 支持 Amazon Trust Services 证书颁发机构。如果您使用的是在 2013 年 10 月 29 日之前发布的 Python AWS 开发工具包或 CLI 版本,则您必须升级。.NET、Java、PHP、Go、JavaScript 和 C++ 开发工具包及 CLI 不捆绑任何证书,其证书来自底层操作系统。在 2015 年 6 月 10 日之后,Ruby 开发工具包附带了至少一个必需的 CA。在日期之前,Ruby V2 开发工具包没有捆绑证书。如果您使用不支持、自定义或经过修改的 AWS 开发工具包版本,或者您使用自定义信赖存储,您可能不具备 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/ 上找到这些 CA。

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

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

  • 带 Java for Mac OS X 10.4 版本 5 的 Mac OS X 10.4、Mac OS 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 Update 2 和所有更高版本,包括 Java 6、Java 7 和 Java 8

如果您仍无法连接,请查看您的软件文档,咨询操作系统供应商或者联系 AWS Support https://aws.amazon.com/support,以获得进一步的帮助。