Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

クライアントの TLS/SSL 設定

項目一覧

  • MongoDB Shell
  • MongoDB Atlas、MongoDB Cloud Manager、MongoDB Ops Manager
  • MongoDB ドライバー
  • MongoDB ツール

TLS/SSL 接続 を必要とする mongodまたはmongosインスタンスに接続するには、クライアントが TLS/SSL をサポートしている必要があります。

注意

  • MongoDB の Linux 64 ビット レガシー x64 バイナリには、TLS/SSL のサポートは含まれていません

  • MongoDB は、TLS 1.1 + が利用可能なシステムで TLS 1.0暗号化のサポートを無効にします。

重要

TLS/SSL、PKI(公開キー基盤)証明書、認証局についての詳細な説明は、このドキュメントの範囲外です。このページでは、TLS/SSL に関する予備知識があり、有効な証明書にアクセスすることを前提としています。

mongosh 次のようなさまざまな TLS/SSL 設定に対応しています。

TLS オプション
ノート

TLS/SSL 接続を有効にします。

またはmongod mongosインスタンスに提示する.pem mongoshの証明書と鍵を含む ファイルを指定します。このオプションは--tlsCertificateSelectorと排他関係にあります

が x を表示した場合、 mongod / mongosは接続時に警告を記録します。 509証明書はmongod/mongosホスト システム時間から30日以内に期限切れになります。

mongoshの証明書鍵ファイルが暗号化されている場合。

mongod または mongos インスタンスによって提示された証明書の検証用に、認証局(CA)の .pem ファイルを指定します。

Windows または macOS で実行している場合は、システム証明書ストアの証明書を使用します。

このオプションは--tlsCertificateKeyFileと排他関係にあります。

が x を表示した場合、 mongod / mongosは接続時に警告を記録します。 509証明書はmongod/mongosホスト システム時間から30日以内に期限切れになります。

mongoshtlsオプションの完全なリストについては、 TLS オプションを参照してください。

TLS/SSL 接続の場合、 mongoshmongodまたはmongosインスタンスによって提示された証明書を検証します。

  • mongoshは、証明書が指定された証明機関( --tlsCAFileからのものであることを確認します。 証明書が指定された CA からのものでない場合、 mongoshは接続に失敗します。

  • mongoshは、ホスト名( --hostオプションまたは接続stringで指定)が、 mongodによって提示された証明書の SANSAN が存在しない場合は CN)と一致することを確認します。またはmongosSANが存在する場合、 mongoshCNと一致しません。 ホスト名がSAN (またはCN )と一致しない場合、 mongoshは接続に失敗します。

    MongoDB 4.2 以降、SAN の比較を行なう際に、MongoDB は DNS 名または IP アドレスの比較をサポートします。以前のバージョンでは、 MongoDB は DNS 名の比較のみをサポートしていました。

    TLS/SSL を必要とするmongodまたはmongosmongoshを接続するには、 --hostオプションを指定するか、接続stringを使用してホスト名を指定します。 その他のTLS/SSLオプションはすべて、 コマンドライン オプションを使用して指定する必要があります。

暗号化通信 mongodが必要なmongos または インスタンスに接続するには、次のコマンドでmongosh を起動します。

たとえば、次のオプションを使用して mongod インスタンスを hostname.example.com で実行する場合を考えます。

mongod --tlsMode requireTLS --tlsCertificateKeyFile <pem>

インスタンスに接続するには、次のオプションを使用してmongoshを起動します。

mongosh --tls --host hostname.example.com --tlsCAFile /etc/ssl/caToValidateServerCertificates.pem

mongoshは、指定されたホスト名と CA ファイルに対してmongodインスタンスによって提示された証明書を検証します。

CA 署名クライアント証明書を必要とするmongodまたはmongosに接続するには、次のコマンドでmongoshを起動します。

たとえば、次のオプションを使用して mongod インスタンスを hostname.example.com で実行する場合を考えます。

mongod --tlsMode requireTLS --tlsCertificateKeyFile /etc/ssl/mongodb.pem --tlsCAFile /etc/ssl/caToValidateClientCertificates.pem

インスタンスに接続するには、次のオプションを使用してmongoshを起動します。

mongosh --tls --host hostname.example.com --tlsCertificateKeyFile /etc/ssl/client.pem --tlsCAFile /etc/ssl/caToValidateServerCertificates.pem

システム証明書ストアからクライアント証明書を指定するには、--tlsCertificateSelector の代わりに--tlsCertificateKeyFile オプションを使用します。

CA ファイルもシステム証明書ストアにある場合は、 --tlsCAFileオプションを省略できます。

たとえば、CN(共通名)が myclient.example.net である証明書とそれに付随する CA ファイルが両方とも macOS システム証明書ストアにある場合、次のように接続できます。

mongosh --tls --host hostname.example.com --tlsCertificateSelector subject="myclient.example.net"

mongosh でも使用可能ですが、代替として tls を使用する必要があります。

警告

--tlsAllowInvalidCertificates オプションは使用可能ですが、可能な限り使用しないでください。--tlsAllowInvalidCertificates の使用が必要な場合は、侵入が不可能なシステムでのみこのオプションを使用してください。

mongosh--tlsAllowInvalidCertificatesオプションを使用して実行されている場合、 mongoshはサーバー証明書の検証を試行しません。 これにより、期限切れのmongodおよびmongos証明書、および有効なmongodまたはmongosインスタンスを引き受ける外部プロセスに対する脆弱性が生じます。 TLS/SSL 証明書のホスト名の検証を無効にするだけの場合は、 --tlsAllowInvalidHostnamesを参照してください。

MongoDB Atlas は TLS/SSL を使用してデータベースへの接続を暗号化します。

MongoDB Cloud Manager および Ops Manager のモニタリング エージェントは、暗号化通信を使用して統計を収集します。エージェントはすでに MongoDB Cloud Manager サーバーおよび Ops Manager サーバーへの通信を暗号化しているため、上記の暗号化は、MongoDB Cloud Manager または Ops Manager におけるホストごとの TLS/SSL サポートの有効化に関与します。

詳細については、以下を参照してください。

MongoDB ドライバーは暗号化通信をサポートしています。詳細については、以下を参照してください。

さまざまな MongoDB ユーティリティ プログラムが暗号化通信をサポートしています。これらのツールには、次のものが含まれます。

これらのツールで暗号化通信を使用するには、 mongoshと同じtlsオプションを使用します。 詳しくは、 MongoDB Shell を参照してください。

Tip

以下も参照してください。

戻る

mongod と mongos を設定する