rotateCertificates
定义
新功能版本5.0.
兼容性
此命令在以下环境中可用的部署
MongoDB Atlas:云中MongoDB部署的完全托管服务
注意
此命令在所有MongoDB Atlas集群中都受支持。有关Atlas对所有命令的支持信息,请参阅不受支持的命令。
MongoDB 企业版:基于订阅、自行管理的 MongoDB 版本
MongoDB 社区版:源代码可用的、免费使用且可自行管理的 MongoDB 版本
语法
该命令具有以下语法
db.runCommand( { rotateCertificates: 1, message: "<optional log message>" } )
命令字段
该命令接受以下可选字段
参数 | 类型 | 描述 |
---|---|---|
message | 字符串 | 可选 服务器记录到日志文件和审计文件的消息。 |
输出
rotateCertificates
命令返回包含以下字段的文档
字段 | 类型 | 描述 |
---|---|---|
ok | 布尔型 | 包含命令的执行状态。成功时为 true ,如果发生错误则为 false 。如果为 false ,则还提供了一个包含详细错误消息的 errmsg 字段。 |
行为
旋转包含以下证书
CRL(证书吊销列表)文件
(在 Linux 和 Windows 平台上)
要旋转这些证书中的一个或多个
在文件系统中替换您希望旋转的证书或证书,注意以下约束
每个新证书必须与被替换的证书有相同的文件名和相同的文件路径。
如果您正在旋转加密的
TLS 证书
,其密码必须与旧证书的密码相同(如certificateKeyFilePassword
配置文件设置中指定)。证书旋转不支持交互式密码提示。
运行
rotateCertificates
命令来旋转mongod
或mongos
实例使用的证书。
证书旋转时
如果您已为您的部署配置了OCSP
,则rotateCertificates
命令在旋转过程中还将获取附加的 OCSP 响应。
可以在运行中的mongod
或mongos
上运行rotateCertificates
命令,而不管复制状态如何。
每次只能在一个 db.rotateCertificates()
或 rotateCertificates
实例上运行。如果尝试在另一个实例正在运行时启动第二个实例,将导致错误。
不正确、过期、被吊销或缺失的证书文件会导致证书轮换失败,但不会使现有的 TLS 配置无效或终止正在运行的 mongod
或 mongos
进程。
如果 mongod
或 mongos
以 --tlsCertificateSelector
设置为 thumbprint
运行,则 rotateCertificates
将失败,并将警告信息写入日志文件。
日志记录
轮换成功后,服务器和集群证书的公钥名称、指纹和有效期将记录到配置的 日志目标。如果启用了 审计,则此信息也将写入审计日志。
在 Linux 和 Windows 平台上,如果存在一个 CRL 文件
,则其指纹和有效期也将记录到这些位置。
所需访问权限
您必须拥有rotateCertificates
操作才能使用rotateCertificates
命令。. rotateCertificates
操作是hostManager
角色的一个部分。
示例
以下操作会在配置文件更新以指定更新后的证书信息后,对正在运行的mongod
实例上的证书进行轮换。
db.adminCommand( { rotateCertificates: 1 } )
以下操作与上面相同,但在轮换时间还向日志文件和审计文件写入自定义日志消息:
db.adminCommand( { rotateCertificates: 1, message: "Rotating certificates" } )