对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

无需停机即可轮换 TLS 证书

Ops Manager可以在托管部署中轮换 TLS 证书,而无需重新启动MongoDB进程。当您递增自动化配置中的certificatesVersion 字段时, MongoDB 助手会在每个符合条件的进程上运行db.adminCommand({ rotateCertificates: 1 }) ,因此客户端连接在整个操作过程中保持不间断。

MongoDB 助手仅对满足以下所有要求的进程应用零停机轮换:

  • 进程类型为mongodmongos

  • MongoDB版本为 5.0 或更高版本。

  • 已在进程上配置 TLS。

  • 部署的所有成员均满足上述要求。

MongoDB 助手无法应用零停机轮换应用于以下任何类别的进程。在Ops Manager用户界面中,不符合条件的部署的复选框处于禁用状态。通过 Automation API, Ops Manager拒绝不符合条件的部署的配置更新,并显示HTTP 400 错误,解释了原因:

条件
行为

MongoDB版本早于 5.0

在Ops Manager用户界面中无法选择。 Automation API拒绝配置更新,并显示HTTP 400 错误。

未配置 TLS

在Ops Manager用户界面中无法选择。 Automation API拒绝配置更新,并显示HTTP 400 错误。

BI Connector或 mongosqld

在Ops Manager用户界面中无法选择。 Automation API拒绝配置更新,并显示HTTP 400 错误。

TLS 路径更改与轮换同时发生

滚动重启可处理路径更改。 Ops Manager将轮换记录为已完成。

重要

零停机轮换要求部署中的所有进程都满足资格要求。如果任何进程不符合条件,请改用现有方法:导航到 DeploymentSecuritySettingsTLS Settings,更新证书路径,并通过 Review and Deploy触发滚动重启。

在轮换证书之前,请验证以下内容:

  • 您的部署由Ops Manager自动化托管。

  • mongod部署中的所有mongos 和 进程运行MongoDB5.0 或更高版本。

  • 已在部署中启用 TLS。

  • 新的 TLS 证书有效,并在原始配置路径中正确覆盖。

使用自动化API或Ops Manager用户界面触发证书轮换。

重要

您无法通过用户界面或API将 certificatesVersion 恢复为之前的值。 Ops Manager仅允许增加此值。

要使用自动化API轮换证书,检索当前的自动化配置,递增 certificatesVersion,然后上传更新的配置。

1

向自动化配置端点发送 GET请求:

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" \
--digest \
--header "Accept: application/json" \
--request GET \
"https://<OpsManagerHost>/api/public/v1.0/groups/{GROUP-ID}/automationConfig"

将响应正文保存到本地文件,例如 automation-config.json

2

processes大量中,找到要轮换的每个进程的对象。将 certificatesVersion 整数递增 1。如果该字段不存在,请添加该字段并将其设立为 1

要触发就地轮换,设立一个大于当前发布值的值。相等的值不会触发轮换。 Ops Manager使用HTTP 400 INVALID_AUTOMATION_CONFIG 拒绝递减。有关字段验证规则,请参阅MongoDB进程。

3

使用修改后的配置发送 PUT请求:

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" \
--digest \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--request PUT \
--data @automation-config.json \
"https://<OpsManagerHost>/api/public/v1.0/groups/{GROUP-ID}/automationConfig"
4

在Ops Manager用户界面中,单击 Deployment,然后单击 Processes。等待状态指示器显示所有进程已收敛。 MongoDB 助手对每个符合条件的进程应用轮换并记录结果。

要使用Ops Manager用户界面轮换证书,请导航到项目的 TLS 设置并选择要轮换的部署。

1

单击 DeploymentSecuritySettings,然后单击 TLS Settings

2

单击 Edit,然后单击 Rotate Certificates。该表列出了项目中的所有部署项。不符合条件的项目将被禁用,并在悬停鼠标时显示原因。

3

选择一个或多个符合条件的部署项,然后确认操作。

4

等待所有进程达到目标状态。当MongoDB 助手将轮换应用于每个符合条件的进程时, Ops Manager自动化状态面板中的状态指示器会更新。

MongoDB 助手会保留每次轮换的结果,以便在代理重新启动时继续存在,并从中断处恢复。

每次自动化配置更新在一个或多个进程上轮换证书时, Ops Manager都会在项目的操作日志中记录一个 TLS_CERTIFICATES_ROTATED事件。使用此事件Atlas 审核证书轮换历史记录。

如果 rotateCertificates 命令失败, MongoDB 助手将返回错误代码 128 (TlsCertificatesRotationErr)。 Ops Manager显示“TLS 证书轮换错误” ,并在下一个收敛标记上重新安排该步骤。更正磁盘上的证书文件以解决错误。

如果命令成功但MongoDB 助手无法保留结果,则会自动重试。

当MongoDB 助手在自动化配置中检测到递增的 certificatesVersion 时,它会根据资格要求检查每个符合条件的进程并运行 db.adminCommand({ rotateCertificates: 1 })