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

自己管理型配置の TLS 構成を計画する

TLS encrypts connections between clients and your MongoDB deployment, and between nodes in a replica set. Before you configure TLS, use this page to decide on the configuration that matches your security requirements.

重要

These steps apply to self-managed MongoDB deployments. MongoDB Atlas clusters use TLS by default. If you use Cloud Manager or Ops Manager, configure TLS through your deployment management tool.

TLS 構成を計画する前に、次のリソースと情報があることを確認してください。

  • TLS で構成する自己管理型 MongoDB レプリカセット。

  • The type of certificate authority available to you, such as a public or private CA.

  • X.509 認証が必要かどうかなどのセキュリティ要件。

アクセスできる CA の種類によって、利用可能な TLS 構成が決まります。

CA タイプ
説明
推奨される使用

パブリック CA

  • 登録されたドメイン名が必要です

  • Does not support clientAuth EKU (as of April 2026)

mTLS または X.509 認証なしでクラスター内 TLS 暗号化

プライベート CA

  • Operated internally by your organization's PKI

  • serverAuthclientAuth EKU の両方をサポート

クラスター内 mTLS および X.509 ノード認証

自己署名

  • 証明書を生成します

  • CA 発行の証明書ほど信頼性の高い認証はできません

  • 本番環境では使用しないでください

ローカル開発とテストのみ

次のセクションでは、レプリカセット内のノード間、およびクライアントとサーバー間の TLS 暗号化と認証を構成する方法を決定するのに役立ちます。

TLS およびノード間のキーファイル認証、およびサーバーとクライアント間の相互 TLS および X.509 認証を使用した TLS 有効な配置の図。

ノード間のクラスター内 TLS とキーファイル認証、クライアントとサーバー間の相互 TLS と X.509 認証を使用した配置の例。

クリックして拡大します

All TLS-enabled deployments encrypt connections between nodes. You can also enable intra-cluster mTLS, which requires nodes to present certificates to authenticate as clients during the TLS handshake. When a node accepts an incoming connection, it presents its server certificate so that the connecting party can verify its identity. When a node makes an outbound connection to another node, its behavior depends on whether you enable intra-cluster mTLS.

各暗号化モードに必要な操作を決定するには、次の表を使用します。

暗号化モード
システム要件

mTLS を使用しないクラスター内 TLS

  • serverAuth EKU のみを持つサーバー証明書(あらゆる CA タイプから発行されたもの)

クラスター内 mTLS

  • 任意の CA タイプによって発行された、serverAuth EKU を持つサーバー証明書

  • プライベート CA が発行した clientAuth EKU を持つクライアント証明書

クラスター内 mTLS を使用しない場合、ノードはアウトバウンド接続でクライアントとして認証するための証明書を提示しません。接続ノードは受信ノードのサーバー証明書を検証しますが、受信ノードはTLS ハンドシェイクを通じて接続ノードの ID を検証しません。公開 CA など、serverAuth EKU でのみ証明書を取得できる場合は、この構成を使用します。この構成では、ノード間で X.509認証を有効にすることはできません。

クラスター内 mTLS では、各ノードは他のノードへの発信接続でも証明書を提示し、相互認証を提供します。クラスター内 mTLS は、X.509 ノード認証を使用するのに必要です。ただし、clientAuth EKU を持つ証明書が必要なため、プライベート CA へのアクセスが必要です。

レプリカセットのノードは、認可されたノードのみがレプリケーションに参加することを確認するために相互に認証します。デフォルトでは、承認が有効になっているレプリカセットは、ノード間のキーファイル認証を使用します。ただし、クラスター内 mTLS を有効にすると、代わりに X.509 証明書認証を使用できます。

次の表を使用して、各認証モードに必要なものを決定します。

認証モード
システム要件

キーファイル認証

  • すべてのノードで共有されたキーファイル

X.509 ノード認証

  • クラスター内 mTLS の有効化

  • プライベート CA が発行した clientAuth EKU を持つクライアント証明書

キーファイル認証を使用する場合、すべてのレプリカセットのノードはキーファイルに保存された 1 つの共有シークレットを共有します。各ノードは、セット内の他のノードに接続する際に共有シークレットを提示することで、メンバーシップを証明します。すべてのノードが同じキーを共有しているため、個別のノードのアクセスを取り消したい場合は、すべてのノードでキーファイルを置き換える必要があります。

X.509 認証では、各ノードのクラスター証明書を使用してメンバーシップを確認します。証明書の交換は TLS ハンドシェイク中に行われるため、X.509 ノード認証には、ノードが相互に身元を確認するためのクラスター内 mTLS が必要です。各ノードの一意の証明書身元により、証明書を取消することで個別のノードのアクセスを取消できますが、他のノードには影響しません。さらに、認証と暗号化は単一のハンドシェイクで同時に確立されます。

クラスターノードの証明書には、通常のクライアント証明書と区別するX.509 属性を含める必要があります。必要な証明書属性について学ぶには、ノードX.509 証明書を参照してください。

When a client such as mongosh or a driver connects to a TLS-enabled mongod instance, the server presents its certificate to prove its identity, and the client verifies the certificate against a trusted CA certificate. The client also confirms that the server's hostname matches the certificate's hostname. If verification succeeds, TLS encrypts the connection between server and client.

各暗号化モードに必要な操作を決定するには、次の表を使用します。

接続モード
システム要件

クライアント証明書のない TLS

mongod/mongos 構成ファイルで allowConnectionsWithoutCertificatestrue に設定します

相互 TLS または X.509 クライアント認証

クライアントは clientAuth EKU を持つ証明書を提示する必要があります

allowConnectionsWithoutCertificatestrueに設定すると、クライアントは証明書を送信せずに接続できます。これを有効にすると、serverAuth EKU のみを含む証明書など、不正な証明書を使用してのユーザーの接続が防止されます。サーバーは接続を暗号化し、クライアントに共有される自身のアイデンティティを証明しますが、サーバーは TLS ハンドシェイクを通じてクライアントのアイデンティティを検証できません。クライアントは SCRAM のような方法で認証する必要があります。

クライアントがハンドシェイク中に独自の証明書を提示した場合、サーバーは信頼できる CA に対してクライアント証明書を検証できます。これにより、サーバーとクライアント間で相互 TLS が確立されます。クライアントとサーバー間で X.509 クライアント認証を有効にするには、クライアントが証明書を提示する必要があります。

TLS 接続を確立した後、クライアントは配置にアクセスするために認証する必要があります。クライアントは様々な方法で認証できますが、このクイックスタートでは SCRAM と X.509 認証について説明します。

次の表を使用して、各認証モードに必要なものを決定します。

認証モード
システム要件

SCRAM 認証

  • クラスターの管理者アカウント

X.509 クライアント認証

  • クライアントとサーバー間の相互 TLS

  • clientAuth EKU の証明書

  • プライベート CA へのアクセス

MongoDB はデフォルトのクライアント認証メカニズムとして SCRAM を使用します。クライアントは、ユーザー名、パスワード、および認証データベースを提供し、MongoDB は指定されたデータベース内のユーザーに対して認証情報を検証します。SCRAM では、TLS ハンドシェイク中にクライアントが証明書を提示する必要はありません。

X.509 クライアント認証では、接続時にクライアントが提示する証明書を使用します。相互 TLS が確立されると、クライアントは MONGODB-X509 メカニズムを使用して $external データベースに認証します。MongoDB は証明書のサブジェクト フィールドを $external データベースのユーザーにマップします。

このページを使用して構成を決定したら、続いてTLS サーバー証明書を取得に進んでください。