

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。<a name="ca_cert_rotation_pdt"></a>

**Topics**
+ [更新您的应用程序和 Amazon DocumentDB 集群](#ca_cert_rotation-updating_application)
+ [常见问题](#ca_cert_rotation-faq)

**注意**  
 此信息适用于 GovCloud （美国西部）和 GovCloud （美国东部）地区的用户。

## 更新您的应用程序和 Amazon DocumentDB 集群
<a name="ca_cert_rotation-updating_application"></a>

按照此部分中的步骤更新应用程序的 CA 证书捆绑包（[步骤 1](https://docs.amazonaws.cn/documentdb/latest/developerguide/ca_cert_rotation.html#ca_cert_rotation-pdt-updating_application_step1)），以及您集群的服务器证书（[步骤 2](https://docs.amazonaws.cn/documentdb/latest/developerguide/ca_cert_rotation.html#ca_cert_rotation-pdt-updating_application_step2)）。在将变更应用于生产环境之前，我们强烈建议您在开发环境或登台环境中测试这些步骤。

**注意**  
您必须完成每个 Amazon Web Services 区域 拥有亚马逊 DocumentDB 集群的步骤 1 和步骤 2。

### 步骤 1：下载新的 CA 证书并更新您的应用程序
<a name="ca_cert_rotation-pdt-updating_application_step1"></a>
+ 对于 GovCloud （美国西部），请从[https://truststore.pki.us-gov-west-1.rds.amazonaws.com/us-gov-west-1/us-gov-west-1-bundle.pem](https://truststore.pki.us-gov-west-1.rds.amazonaws.com/us-gov-west-1/us-gov-west-1-bundle.pem)下载新的 CA 证书包。此操作将下载名为 `us-gov-west-1-bundle.pem` 的文件。
+ 对于 GovCloud （美国东部），请从[https://truststore.pki.us-gov-west-1.rds.amazonaws.com/us-gov-east-1/us-gov-east-1-bundle.pem](https://truststore.pki.us-gov-west-1.rds.amazonaws.com/us-gov-east-1/us-gov-east-1-bundle.pem)下载新的 CA 证书包。此操作将下载名为 `us-gov-east-1-bundle.pem` 的文件。

有关将 CA 捆绑与您的应用程序结合使用的示例，请参阅 [加密传输中数据](security.encryption.ssl.md) 和 [启用了 TLS 的情况下的连接](connect_programmatically.md#connect_programmatically-tls_enabled)。

**注意**  
目前，MongoDB Go Driver 1.2.1 只接受 `sslcertificateauthorityfile` 中的一个 CA 服务器证书。有关如何在启用 TLS 时使用 Go 连接到 Amazon DocumentDB，请参阅[启用了 TLS 的情况下的连接](connect_programmatically.md#connect_programmatically-tls_enabled)。

### 步骤 2：更新服务器证书
<a name="ca_cert_rotation-pdt-updating_application_step2"></a>

在更新应用程序以使用新的 CA 捆绑包后，下一步是通过修改 Amazon DocumentDB 集群中每个实例来更新服务器证书。要修改实例以使用新的服务器证书，请参阅以下说明。

Amazon DocumentDB 提供以下内容 CAs 来签署数据库实例的数据库服务器证书：
+ **rds-ca-ecc384-g1**-使用具有 ECC 384 私钥算法和签名算法的证书颁发机构。 SHA384 此 CA 支持服务器证书自动轮换。这目前仅在 Amazon DocumentDB 4.0 和 5.0 上受支持。
+ **rds-ca-rsa2048-g1**-在大多数地区使用具有 RSA 2048 私钥算法和签名算法的证书颁发机构。 SHA256 Amazon 此 CA 支持服务器证书自动轮换。
+ **rds-ca-rsa4096-g1**-使用具有 RSA 4096 私钥算法和签名算法的证书颁发机构。 SHA384 此 CA 支持服务器证书自动轮换。

**注意**  
如果您使用的是 Amazon CLI，则可以使用 d [es](https://docs.amazonaws.cn/cli/latest/reference/docdb/describe-certificates.html) cribe-certifices 查看上面列出的证书颁发机构的有效性。

**注意**  
Amazon DocumentDB 4.0 和 5.0 实例**不**需要重启。  
更新您的 Amazon DocumentDB 3.6 实例需要重新启动，这可能会导致服务中断。在更新服务器证书之前，请确保您已完成[步骤 1](https://docs.amazonaws.cn/documentdb/latest/developerguide/ca_cert_rotation.html#ca_cert_rotation-pdt-updating_application_step1)。

------
#### [ Using the Amazon Web Services 管理控制台 ]

完成以下步骤，以使用 Amazon Web Services 管理控制台为现有 Amazon DocumentDB 实例标识和轮换旧服务器证书。

1. [登录 Amazon Web Services 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.amazonaws.cn/docdb)

1. 在屏幕右上角的区域列表中，选择您的集群 Amazon Web Services 区域 所在的。

1. 在控制台左侧的导航窗格中，选择**集群**。

1. 您可能需要确定哪些实例仍在旧服务器证书上 (`rds-ca-2017`)。您可以在 **证书颁发机构**列中执行此操作，该列默认处于隐藏状态。要显示 **Certificate authority (证书颁发机构)** 列，请执行以下操作：

   1. 选择 **Settings (设置)** 选项卡。  
![\[集群导航框中突出显示设置图标的图片。\]](http://docs.amazonaws.cn/documentdb/latest/developerguide/images/ca-cert-settings.png)

   1. 在可见列列表下，选择 **证书颁发机构**列。

   1. 选择 **Confirm（确认）**以保存所做的更改。

1. 现在回到集群导航框中，您将看到 **Cluster Identifier**（集群标识符）列。您的实例列于集群下，类似于以下屏幕截图。  
![\[集群导航框中显示一列现有集群链接及其对应实例链接的图片。\]](http://docs.amazonaws.cn/documentdb/latest/developerguide/images/choose-clusters.png)

1. 选中您感兴趣的实例左侧的框。

1. 选择 **Actions**（操作），然后选择 **Modify**（修改）。

1. 在下一页上可以看到所做更改的摘要。请注意，在修改实例之前，会有一个额外的警报提醒您确保应用程序使用的是最新的证书 CA 捆绑包，以免造成连接中断。

1. 可以选择在下一个维护时段内应用修改，也可以立即应用。如果您打算立即修改服务器证书，请使用 **Apply Immediately (立即应用)** 选项。

1. 选择**修改实例**以完成更新。

------
#### [ Using the Amazon CLI ]

完成以下步骤，以使用 Amazon CLI为现有 Amazon DocumentDB 实例标识和轮换旧服务器证书。

1. 要立即修改实例，请对集群中的每个实例执行下面的命令。使用以下证书之一：`rds-ca-rsa2048-g1`、`rds-ca-rsa4096-g1` 或 `rds-ca-ecc384-g1`。

1. 要修改集群中的实例，以便在集群的下一个维护时段中使用新的 CA 证书，请对集群中的每个实例执行以下命令。使用以下证书之一：`rds-ca-rsa2048-g1`、`rds-ca-rsa4096-g1` 或 `rds-ca-ecc384-g1`。

------

## 常见问题
<a name="ca_cert_rotation-faq"></a>

以下是有关 TLS 证书的一些常见问题的答案。

### 如果我有疑问或问题，应该怎么办？
<a name="ca_cert_rotation-faq_question1"></a>

如果您有任何疑问或问题，请联系 [Amazon Web Services 支持](https://www.amazonaws.cn/premiumsupport)。

### 如何知道我是否在使用 TLS 连接我的 Amazon DocumentDB 集群？
<a name="ca_cert_rotation-faq_question2"></a>

您可以通过检查集群的集群参数组的 `tls` 参数来确定您的集群是否使用 TLS。如果将 `tls` 参数设置为 `enabled`，则表示您正在使用 TLS 证书连接到您的集群。有关更多信息，请参阅 [管理 Amazon DocumentDB 集群参数组](cluster_parameter_groups.md)。

### 为什么要更新 CA 和服务器证书？
<a name="ca_cert_rotation-faq_question3"></a>

### 如果我在到期日之前没有采取任何行动会怎样？
<a name="ca_cert_rotation-faq_question4"></a>

如果您使用 TLS 连接到您的 Amazon DocumentDB 集群，并且在 2022 年 5 月 18 日之前没有进行更改，那么通过 TLS 连接的应用程序将无法再与 Amazon DocumentDB 集群通信。

Amazon DocumentDB 将不会在过期之前自动轮换您的数据库证书。您必须在到期日之前或之后更新应用程序和集群以使用新的 CA 证书。

### 我如何知道我的哪个 Amazon DocumentDB 实例正在使用 old/new 服务器证书？
<a name="ca_cert_rotation_pdt-faq_question5"></a>

要识别仍在使用旧服务器证书的 Amazon DocumentDB 实例，您可以使用亚马逊 D Amazon Web Services 管理控制台 ocumentDB 或。 Amazon CLI

#### 使用 Amazon Web Services 管理控制台
<a name="question5-console"></a>

**要识别集群中正在使用旧证书的实例**

1. [登录 Amazon Web Services 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.amazonaws.cn/docdb)

   

1. 在屏幕右上角的区域列表中，选择您的实例 Amazon Web Services 区域 所在的。

1. 在控制台左侧的导航窗格中，选择 **Instances (实例)**。

1. 

   1. 选择 **Settings (设置)** 选项卡。

   1. 在可见列列表下，选择 **证书颁发机构**列。

   1. 选择 **Confirm（确认）**以保存所做的更改。

#### 使用 Amazon CLI
<a name="question5-cli"></a>

要识别集群中正在使用旧服务器证书的实例，请使用带以下的 `describe-db-clusters` 命令。

```
aws docdb describe-db-instances \
    --filters Name=engine,Values=docdb \
    --query 'DBInstances[*].{CertificateVersion:CACertificateIdentifier,InstanceID:DBInstanceIdentifier}'
```

### 如何修改 Amazon DocumentDB 集群中的单个实例以更新服务器证书？
<a name="ca_cert_rotation-faq_question7"></a>

我们建议您在给定集群中同时更新所有实例的服务器证书。要修改您的集群中的实例，可以使用控制台或 Amazon CLI。

**注意**  
更新您的实例需要重新启动，这可能会导致服务中断。在更新服务器证书之前，请确保您已完成[步骤 1](https://docs.amazonaws.cn/documentdb/latest/developerguide/ca_cert_rotation.html#ca_cert_rotation-pdt-updating_application_step1)。

#### 使用 Amazon Web Services 管理控制台
<a name="question7-console"></a>

1. [登录 Amazon Web Services 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.amazonaws.cn/docdb)

1. 在屏幕右上角的区域列表中，选择您的集群 Amazon Web Services 区域 所在的。

1. 在控制台左侧的导航窗格中，选择 **Instances (实例)**。

1. **Certificate authority (证书颁发机构)** 列（默认情况下处于隐藏状态）会显示哪些实例仍在使用旧的服务器证书 (`rds-ca-2017`)。要显示 **Certificate authority (证书颁发机构)** 列，请执行以下操作：

   1. 选择 **Settings (设置)** 选项卡。

   1. 在可见列列表下，选择 **证书颁发机构**列。

   1. 选择 **Confirm（确认）**以保存所做的更改。

1. 选择要修改的实例。

1. 选择 **Actions**（操作），然后选择 **Modify**（修改）。

1. 在下一页上可以看到所做更改的摘要。请注意，在修改实例之前，会有一个额外的警报提醒您确保应用程序使用的是最新的证书 CA 捆绑包，以免造成连接中断。

1. 可以选择在下一个维护时段内应用修改，也可以立即应用。

1. 选择**修改实例**以完成更新。

#### 使用 Amazon CLI
<a name="question7-cli"></a>

完成以下步骤，以使用 Amazon CLI为现有 Amazon DocumentDB 实例标识和轮换旧服务器证书。

1. 要立即修改实例，请对集群中的每个实例执行下面的命令。

1.  要修改集群中的实例，以便在集群的下一个维护时段中使用新的 CA 证书，请对集群中的每个实例执行以下命令。

### 如果我向现有集群中添加新的实例，会怎么样？
<a name="ca_cert_rotation-faq_question8"></a>

### 如果我的集群发生实例替换或故障转移，会怎么样？
<a name="ca_cert_rotation-faq_question9"></a>

如果集群中有实例替换，则创建的新实例将继续使用该实例以前使用的服务器证书。我们建议您同时更新所有实例的服务器证书。如果集群中发生失效转移，则使用新主实例上的服务器证书。

### 如果我没有使用 TLS 连接到我的集群，我还需要更新每个实例吗？
<a name="ca_cert_rotation_pdt-faq_question10"></a>

如果您未使用 TLS 连接到 Amazon DocumentDB 集群，则不需要执行操作。

### 如果我目前没有使用 TLS 连接到集群，但计划将来这样做，该怎么办？
<a name="ca_cert_rotation-faq_question11"></a><a name="ca_cert_rotation-faq_question12"></a>

### 我如何确定我使用的是最新的 CA 捆绑包？
<a name="ca_cert_rotation_pdt-faq_question13"></a>

出于兼容性原因，旧的和新的 CA 捆绑包文件的文件名都为 `us-gov-west-1-bundle.pem`。此外，您还可以使用 `openssl` 或 `keytool` 等工具来检查 CA 捆绑包。

### 为什么我在 CA 捆绑包的名称中看到 “RDS”？
<a name="ca_cert_rotation-faq_question14"></a>

对于某些管理功能，例如证书管理，Amazon DocumentDB 使用与 Amazon Relational Database Service (Amazon RDS) 共享的操作技术。<a name="ca_cert_rotation-pdt-faq_question15"></a>

新服务器证书将（通常）按以下方式过期：
+ **rds-ca-rsa2048-** g1 — 2061 年到期
+ **rds-ca-rsa4096-** g1 — 2121 到期
+ **rds-ca-ecc384-g** 1 — 2121 年到期<a name="ca_cert_rotation-pdt-faq_question15-5"></a>

错误消息因驱动程序而异。通常，您会看到含有“证书已过期”字符串的证书验证错误。

### 如果我应用了新的服务器证书，我可以恢复为使用旧的服务器证书吗？
<a name="ca_cert_rotation-faq_question16"></a>

如果您需要将实例恢复为使用旧的服务器证书，建议您对集群中的所有实例都执行此操作。您可以使用 Amazon Web Services 管理控制台 或恢复集群中每个实例的服务器证书 Amazon CLI。

#### 使用 Amazon Web Services 管理控制台
<a name="question16-console"></a>

1. [登录 Amazon Web Services 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.amazonaws.cn/docdb)

1. 在屏幕右上角的区域列表中，选择您的集群 Amazon Web Services 区域 所在的。

1. 在控制台左侧的导航窗格中，选择 **Instances (实例)**。

1. 选择要修改的实例。选择 **Actions (操作)**，然后选择 **Modify (修改)**。

1. 选择 **Continue (继续)** 以查看修改摘要。

1. 在显示的页面中，您可以选择安排在下一个维护时段中应用修改，或立即应用修改。进行选择，然后选择 **Modify instance (修改实例)**。
**注意**  
如果您选择立即应用修改，则该操作也将同时应用等待修改队列中的所有更改。如果任何待处理修改需要停机，选择此选项可导致意外停机。

#### 使用 Amazon CLI
<a name="question16-cli"></a>

如果您选择 `--no-apply-immediately`，则将在集群的下一个维护时段内应用所做的更改。

### 如果我从快照还原或执行时间点还原，它会有新的服务器证书吗？
<a name="ca_cert_rotation-faq_question17"></a>

### 如果我在从 Mac OS X Catalina 直接连接到我的 Amazon DocumentDB 集群时遇到问题，该怎么办？
<a name="ca_cert_rotation-faq_question18"></a>

Mac OS X Catalina 已更新对可信证书的要求。现在，可信证书的有效期必须不超过 825 天（请参阅 [https://support.apple.com/en-us/HT210176](https://support.apple.com/en-us/HT210176)）。Amazon DocumentDB 实例证书的有效期超过四年，比 Mac OS X 的最大有效期更长。要从运行 Mac OS X Catalina 的计算机直接连接到 Amazon DocumentDB 集群，您必须在创建 TLS 连接时允许使用无效证书。在这种情况下，无效证书是指其有效期超过 825 天。在连接到 Amazon DocumentDB 集群时，您应在允许使用无效证书之前了解风险。

要使用从 OS X Catalina 连接到 Amazon DocumentDB 集群 Amazon CLI，请使用参数。`tlsAllowInvalidCertificates`

```
mongo --tls --host <hostname> --username <username> --password <password> --port 27017 --tlsAllowInvalidCertificates
```