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