本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
排查 SSL/TLS 连接建立问题
Amazon DynamoDB 正在将终端节点移至保护由 Amazon Trust Services (ATS) 证书颁发机构 (而不是第三方证书颁发机构) 签发的证书。2017 年 12 月,我们通过 Amazon Trust Services 颁发的安全证书启动了 EU-WEST-3(巴黎)区域。2017 年 12 月之后启动的所有新区域都有终端节点,这些终端节点具有由 Amazon Trust Services 颁发的证书。本指南向您介绍如何验证和解决 SSL/TLS 连接问题。
测试您的应用程序或服务
大多数 AWS SDKs 和命令行界面 (CLI) 支持 Amazon Trust Services 证书颁发机构。如果您使用的是 2013 年 10 月 29 日之前发布的 Python AWS 开发工具包或 CLI 版本,则必须进行升级。.NET、Java、PHP、Go、JavaScript 和 C++ SDKs 以及 CLI 不会捆绑任何证书,其证书来自底层操作系统。Ruby 开发工具包自 2015 年 6 月 10 日起至少包含了一个必需的 CAs。在该日期之前,Ruby V2 开发工具包没有将证书打包。如果您使用的是不受支持、自定义或修改的 AWS 开发工具包版本,或者使用自定义信任存储,则您可能没有 Amazon Trust Services 证书颁发机构所需的支持。
要验证对 DynamoDB 终端节点的访问,您需要开发一个测试,以访问 EU-WEST-3 区域中的 DynamoDB API 或 DynamoDB Streams API 并验证 TLS 握手是否成功。在此类测试中,您需要访问的特定终端节点包括:
-
DynamoDB Streams:https://streams.dynamodb.eu-west-3.amazonaws.com
如果您的应用程序不支持 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 列表(如果它们尚不支持以下任何 CAs):
-
Amazon Root CA 1
-
Starfield Services Root Certificate Authority – G2
-
Starfield Class 2 Certification Authority
如果客户端已信任上述三个 CAs 中的任意一个,则这些将信任 DynamoDB 使用的证书,并且无需执行任何操作。但是,如果您的客户端尚未信任上述任何 CAs,则与
DynamoDB 或 DynamoDB Streams APIs 的 HTTPS 连接将失败。有关更多信息,请访问此博客文章:https://aws.amazon.com/blogs/security/how-to-prepare-for-aws-move-to-its-own-certificate-authority/
更新客户端浏览器
您可以在浏览器中更新证书捆绑包,只需更新浏览器即可。有关最常见的浏览器的说明可在浏览器网站上找到:
手动更新证书捆绑包
如果您无法访问 DynamoDB API 或 DynamoDB Streams API,则需要更新证书捆绑包。为此,您需要导入至少一个必需的 CAs。 您可以在
https://www.amazontrust.com/repository/ 中找到这些内容。
以下操作系统和编程语言支持 Amazon Trust Services 证书:
-
安装了 2005 年 1 月版或更高版本的 Microsoft Windows 版本、Windows Vista、Windows 7、Windows Server 2008 和更新版本。
-
Mac OS X 10.4(带 Java for Mac OS X 10.4 版本 5、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 更新 2 和所有较新版本,包括 Java 6、Java 7 和 Java 8
如果您仍然无法连接,请参阅您的软件文档、操作系统供应商或联系 AWS Support https://aws.amazon.com/support