Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

db.rotateCertificates()

在此页面上

  • 定义
  • 输出
  • 行为
  • 日志记录
  • 必需的访问权限
  • 例子

版本 5.0 中的新增功能

db.rotateCertificates(message)

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

db.rotateCertificates(message)

db.rotateCertificates()方法接受以下可选参数:

范围
类型
说明
message
字符串
可选服务器记录到日志文件和审核文件中的消息。

db.rotateCertificates()方法封装了rotateCertificates命令。

db.rotateCertificates()方法返回包含以下字段的文档:

字段
类型
说明
ok
bool
包含命令的执行状态。 成功则为true ,如果发生错误则为false 。 如果为false ,则另外向errmsg字段提供详细的错误消息。

轮换包括以下证书:

轮换一个或多个证书:

  1. 替换您要在文件系统中轮换的证书,并注意以下限制:

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

    • 如果轮换加密的 TLS Certificate,其密码必须与旧证书的密码相同(如 certificateKeyFilePassword 配置文件设置所指定)。证书轮换不支持交互式密码提示。

  2. mongosh连接到您希望执行证书轮换的mongodmongos实例。

  3. 运行db.rotateCertificates()以轮换mongodmongos实例使用的证书。

当证书轮换发生时:

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

  • 所有新连接都将使用新证书。

如果您已为部署配置OCSP ,则db.rotateCertificates()方法还会在轮换期间获取装订的 OCSP 响应。

无论复制状态如何, db.rotateCertificates()方法都可以在正在运行的mongodmongos上运行。

每个mongoddb.rotateCertificates() rotateCertificates进程上每次只能运行一个mongos 或 实例。在一个实例已经运行时尝试启动第二个实例将导致错误。

证书文件错误、过期、撤销或丢失会导致证书轮换失败,但不会导致现有 TLS 配置失效或终止正在运行的 mongodmongos 进程。

如果mongodmongos--tlsCertificateSelector设置为thumbprint的情况下运行, db.rotateCertificates()将失败并向日志文件写入一条警告消息。

成功轮换后,主题名称、指纹以及服务器和集群证书指纹的有效期都会记录到配置的日志目标中。 如果已启用审核,此信息也会写入审核日志。

在 Linux 和 Windows 平台上,如果存在CRL file ,其指纹和有效期也会记录到这些位置。

您必须执行rotateCertificates操作才能使用db.rotateCertificates()方法。 rotateCertificates操作是hostManager角色的一部分。

对配置文件进行适当更新以指定更新的证书信息后,以下操作将在运行中的mongod实例上轮换证书:

db.rotateCertificates()

以下操作的执行与上述操作相同,但还会在轮换时将自定义日志消息写入日志文件审核文件:

db.rotateCertificates("message": "Rotating certificates")
← db.resetError()