AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

自己管理型配置での TLS の構成

このチュートリアルでは、自己管理型レプリカセットでの`TLS`の設定方法を説明します。ノード間の X.509 認証を有効にするに必要なクラスター内 mTLS を使用するかどうかに基づいて、アプローチを選択します。

重要

これらの手順は、自己管理型 MongoDB 配置に適用されます。MongoDB Atlas クラスターは、デフォルトで TLS を使用します。Cloud Manager または MongoDB Ops Manager を使用する場合は、配置マネジメントツールを介して TLS を構成します。

開始する前に、次のものがあることを確認してください。

  • 各ノードに localhost や mongo0.example.com などのホスト名が設定されている自己管理型レプリカセット。現在、レプリカセット内のノードに TLS は設定されていません。

  • サーバー証明書の取得チュートリアルに従って取得した各ノードの TLS サーバー証明書(mongo0.pemなど)。

  • サーバー証明書に署名するための CA 証明書。例: ca.pem

  • 各ノード上の mongod 構成ファイルへのアクセス。

  • Access to mongosh.

クラスター内 mTLS またはサーバー ノード間の X.509 認証が不要な場合は、この手順に従ってください。

1

各ノードはキーファイルのコンテンツを使用して、配置の他のノードを認証します。次のコマンドを使用してキーファイルを作成します。

openssl rand -base64 756 > /etc/ssl/mongodb/keyfile
chmod 400 /etc/ssl/mongodb/keyfile

キーファイルを配置内の各ノードにコピーします。キーファイルのパーミッションを制限して、mongod プロセスのみがファイルを読み取れるようにします。

2

各ノードで、mongod 構成ファイルを見つけて開きます。ファイルが存在しない場合は作成します。次の TLS オプションを追加します。証明書ファイルへの絶対パスを使用します。

たとえば、プライマリ ノードの構成ファイルは次のようになります。

net:
tls:
mode: allowTLS
certificateKeyFile: /etc/ssl/mongodb/mongo0.pem
CAFile: /etc/ssl/mongodb/ca.pem
allowConnectionsWithoutCertificates: true
security:
clusterAuthMode: keyFile
keyFile: /etc/ssl/mongodb/keyfile
setParameter:
tlsWithholdClientCertificate: true
  • allowTLS に設定された mode は TLS 接続を受け入れますが、必要としていません。これにより、ノードはレプリケーションを中断することなくローリング再起動を完了できます。

  • certificateKeyFile はノードの証明書を指定します。ファイル名を、構成する特定のノードの証明書キーファイルに置き換えます。CAFile はノードの証明書に署名した CA 証明書を指定します。

  • allowConnectionsWithoutCertificates TLS 証明書を提供せずにクライアントが接続できます。

  • clusterAuthMode を keyFile に設定すると、ノードはキーファイルを使用して認証できるようになります。keyFile は、ノード間の認証に使用するキーファイルを指定します。

  • tlsWithholdClientCertificate は、クラスター内の他のノードに送信接続を行うときに、ノードがサーバー証明書を提示するのを防ぎます。これは必要であり、証明書に clientAuth EKU が含まれていない場合、ノードがクライアント認証にサーバー認証証明書を使用するのを防ぐためです。

3

新しい TLS 構成を適用するには、mongod プロセスを再起動します。ダウンタイムなしで構成を適用するには、ノードをローリング方式で再起動します。

配置の各ホストで、セカンダリノードから開始し、プライマリノードで終了するまで、次の操作を実行します。

sudo systemctl restart mongod

ローリング再起動が正常に完了したことを確認するには、各ホストで次のコマンドを実行します。

sudo systemctl status mongod
4

TLS が有効になってすべてのノードが正常に再起動したら、各ノードの構成ファイルを更新します。すべてのクライアントとノードの暗号化された接続を強制するには、net.tls.mode を allowTLS から requireTLS に変更します。

net:
tls:
mode: requireTLS
5

新しい TLS 構成を適用するには、mongod プロセスを再起動します。ダウンタイムなしで構成を適用するには、ノードをローリング方式で再起動します。

配置の各ホストで、セカンダリノードから開始し、プライマリノードで終了するまで、次の操作を実行します。

sudo systemctl restart mongod

ローリング再起動が正常に完了したことを確認するには、各ホストで次のコマンドを実行します。

sudo systemctl status mongod

クライアント アプリケーションを使用して配置に接続する方法を学ぶには、続けてTLS が有効なレプリカセットに接続するを参照してください。