文档菜单
文档首页
/
MongoDB 手册
/ / /

rotateCertificates

本页内容

  • 定义
  • 兼容性
  • 语法
  • 命令字段
  • 输出
  • 行为
  • 日志记录
  • 所需访问权限
  • 示例

新功能版本5.0.

rotateCertificates

旋转当前使用的TLS证书,以供mongodmongos使用配置文件中定义的这些证书的更新值。

此命令在以下环境中可用的部署

  • MongoDB Atlas:云中MongoDB部署的完全托管服务

注意

此命令在所有MongoDB Atlas集群中都受支持。有关Atlas对所有命令的支持信息,请参阅不受支持的命令。

该命令具有以下语法

db.runCommand(
{
rotateCertificates: 1,
message: "<optional log message>"
}
)

该命令接受以下可选字段

参数
类型
描述
message
字符串
可选 服务器记录到日志文件和审计文件的消息。

rotateCertificates 命令返回包含以下字段的文档

字段
类型
描述
ok
布尔型
包含命令的执行状态。成功时为 true,如果发生错误则为 false。如果为 false,则还提供了一个包含详细错误消息的 errmsg 字段。

旋转包含以下证书

要旋转这些证书中的一个或多个

  1. 在文件系统中替换您希望旋转的证书或证书,注意以下约束

    • 每个新证书必须与被替换的证书有相同的文件名和相同的文件路径

    • 如果您正在旋转加密的TLS 证书,其密码必须与旧证书的密码相同(如certificateKeyFilePassword配置文件设置中指定)。证书旋转不支持交互式密码提示。

  2. 连接到您希望执行证书旋转的mongoshmongodmongos实例。

  3. 运行rotateCertificates命令来旋转mongodmongos实例使用的证书。

证书旋转时

  • mongodmongos实例的现有连接不会被终止,并将继续使用旧证书。

  • 任何新的连接将使用新证书。

如果您已为您的部署配置了OCSP,则rotateCertificates命令在旋转过程中还将获取附加的 OCSP 响应。

可以在运行中的mongodmongos上运行rotateCertificates命令,而不管复制状态如何。

每次只能在一个 db.rotateCertificates()rotateCertificates 实例上运行。如果尝试在另一个实例正在运行时启动第二个实例,将导致错误。

不正确、过期、被吊销或缺失的证书文件会导致证书轮换失败,但不会使现有的 TLS 配置无效或终止正在运行的 mongodmongos 进程。

如果 mongodmongos--tlsCertificateSelector 设置为 thumbprint 运行,则 rotateCertificates 将失败,并将警告信息写入日志文件。

轮换成功后,服务器和集群证书的公钥名称、指纹和有效期将记录到配置的 日志目标。如果启用了 审计,则此信息也将写入审计日志。

在 Linux 和 Windows 平台上,如果存在一个 CRL 文件,则其指纹和有效期也将记录到这些位置。

您必须拥有rotateCertificates 操作才能使用rotateCertificates命令。. rotateCertificates操作是hostManager角色的一个部分。

以下操作会在配置文件更新以指定更新后的证书信息后,对正在运行的mongod实例上的证书进行轮换。

db.adminCommand( { rotateCertificates: 1 } )

以下操作与上面相同,但在轮换时间还向日志文件审计文件写入自定义日志消息:

db.adminCommand( { rotateCertificates: 1, message: "Rotating certificates" } )

返回

renameCollection