rotateCertificates
定義
バージョン 5.0 で追加
rotateCertificates
または
mongod
の現在使用されているmongos
TLS 証明書 をローテーションして、 構成ファイルで定義されているこれらの証明書の更新された値を使用します。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
このコマンドの構文は、次のとおりです。
db.runCommand( { rotateCertificates: 1, message: "<optional log message>" } )
コマンドフィールド
コマンドは、次の任意フィールドがあります。
Parameter | タイプ | 説明 |
---|---|---|
| string | 任意サーバーがログファイルと監査ファイルに記録するメッセージ。 |
出力
rotateCertificates
コマンドは、次のフィールドを含むドキュメントを返します。
フィールド | タイプ | 説明 |
---|---|---|
| ブール | コマンドの実行状態が入ります。 成功した場合は |
動作
ローテーションには次の証明書が含まれます。
CRL (Certificate Revocation List) files
(Linux および Windows プラットフォーム上)
1 つまたは複数の証明書をローテーションする。
次の制約に注意しながら、ファイルシステム上でローテーションしたい証明書を置き換えます。
新しい証明書はそれぞれ、置き換える証明書と同じファイル名と同じファイルパスを持っている必要があります。
暗号化された
TLS Certificate
をローテーションする場合、そのパスワードは古い証明書のパスワードと同じである必要があります(certificateKeyFilePassword
構成ファイル設定で指定)。証明書のローテーションでは、対話型のパスワード プロンプトはサポートされません。
rotateCertificates
コマンドを実行して、mongod
またはmongos
インスタンスで使用される証明書をローテーションします。
証明書のローテーションが行われると、次のようになります。
配置にOCSP
を構成した場合、 rotateCertificates
コマンドはローテーション中にステープリングされた OCSP 応答も取得します。
rotateCertificates
コマンドは、レプリケーションのステータスに関係なく、実行中のmongod
またはmongos
で実行できます。
db.rotateCertificates()
またはrotateCertificates
プロセスごとに一度に実行できるmongod
mongos
または のインスタンスのみ。2 つ目の インスタンスがすでに実行中に 2 つ目の インスタンスを開始しようとすると、エラーが発生します。
証明書ファイルが正しくない、期限切れ、取り消されている、または見つからない場合、証明書のローテーションは失敗しますが、既存の TLS 構成が無効になったり、実行中の mongod
または mongos
プロセスが終了したりすることはありません。
mongod
またはmongos
が--tlsCertificateSelector
をthumbprint
に設定して実行している場合、 rotateCertificates
は失敗し、ログファイルに警告メッセージが書込まれます。
ログ記録
ローテーションに成功すると、サブジェクト名、サムプリント、およびサーバー証明書のサムプリントの有効期間が、構成されたログ出力先にログとして記録されます。 監査が有効になっている場合は、この情報も 監査ログ に書き込まれます。
Linux と Windows プラットフォームでは、 CRL file
が存在する場合、そのサムプリントと有効期間もこれらのロケーションにログ化されます。
必要なアクセス権
rotateCertificates
コマンドを使用するには、rotateCertificates
アクション が必要です。rotateCertificates
アクションはhostManager
ロールの一部です。
例
次の操作では、更新された証明書情報を指定するために構成ファイルを適切に更新した後、実行中のmongod
インスタンス上の証明書をローテーションします。
db.adminCommand( { rotateCertificates: 1 } )
以下の は上記と同じ操作を実行しますが、ローテーション時にカスタム ログ メッセージをログファイルと監査ファイルに書込みます。
db.adminCommand( { rotateCertificates: 1, message: "Rotating certificates" } )