

# 使用 DynamoDB 解决 SSL/TLS 连接建立问题
<a name="ats-certs"></a>

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

## 测试您的应用程序或服务
<a name="w2aac58b5b5"></a>

 大多数 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 握手是否成功。在此类测试中，您需要访问的具体端点是：
+  DynamoDB：[https://dynamodb.eu-west-3.amazonaws.com](https://dynamodb.eu-west-3.amazonaws.com) 
+  DynamoDB Streams: [https://streams.dynamodb.eu-west-3.amazonaws.com](https://streams.dynamodb.eu-west-3.amazonaws.com) 

 如果您的应用程序不支持 Amazon Trust Services 证书颁发机构，您将遇到以下故障或错误讯息：
+  SSL/TLS 协商错误 
+  长时间延迟后，软件收到错误，指示 SSL/TLS 协商失败。延迟时间取决于客户端的重试策略和超时配置。

## 测试您的客户端浏览器
<a name="w2aac58b5b7"></a>

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

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

 如果测试失败，将显示类似以下内容的错误：[https://untrusted-root.badssl.com/](https://untrusted-root.badssl.com/)。

## 更新软件应用程序客户端
<a name="w2aac58b5b9"></a>

 访问 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/](https://aws.amazon.com/blogs/security/how-to-prepare-for-aws-move-to-its-own-certificate-authority/)。

## 更新您的客户端浏览器
<a name="w2aac58b5c11"></a>

 您只需更新浏览器即可在浏览器中更新证书捆绑包。可以在浏览器网站上找到最常用浏览器的说明：
+  Chrome：[https://support.google.com/chrome/answer/95414?hl=en](https://support.google.com/chrome/answer/95414?hl=en) 
+  Firefox：[https://support.mozilla.org/en-US/kb/update-firefox-latest-version](https://support.mozilla.org/en-US/kb/update-firefox-latest-version) 
+  Safari:[https://support.apple.com/en-us/HT204416](https://support.apple.com/en-us/HT204416) 
+  Internet Explorer：[https://support.microsoft.com/en-us/help/17295/windows-internet-explorer-which-version\#ie=other](https://support.microsoft.com/en-us/help/17295/windows-internet-explorer-which-version#ie=other) 

## 手动更新证书捆绑包
<a name="w2aac58b5c13"></a>

 如果您无法访问 DynamoDB API 或 DynamoDB Streams API，则需要更新证书捆绑包。为此，您需要至少导入一个需要的 CA。可以在 [https://www.amazontrust.com/repository/](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](https://aws.amazon.com/support)），来获得进一步协助。