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

x を使用します。自己管理型 MongoDB によるメンバーシップ認証の509証明書

項目一覧

  • x.509 メンバー証明書
  • レプリカセット/シャーディングされたクラスターの構成
  • 詳細情報

MongoDB は x をサポートしています。安全な TLS/SSL 接続で使用する509証明書認証。 シャーディングされたクラスター ノードとレプリカセット ノードは x を使用できます。 509証明書を使用して、キーファイル を使用する代わりにクラスターまたはレプリカセットへの メンバーシップを確認します 。 メンバーシップ認証は内部プロセスです。

注意

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

内部認証を有効にすると、 自己管理型配置でのロールベースのアクセス制御も有効になります。 配置で接続して操作を実行するには、クライアントは ユーザーとして認証する必要があります。

  • 配置にユーザーを追加する手順については、「 自己管理型配置でのユーザーとロールの管理」チュートリアルを参照してください。

  • 509x を使用する 」を参照してください。 x の使用手順については 、「 自己管理型配置でクライアントを認証するための509 証明書 」のチュートリアルを参照してください。ユーザー認証用の 証明書。

重要

TLS/SSL、PKI(公開キー暗号基盤)証明書、特に x.509 証明書と証明機関の詳細な説明は、このドキュメントの範囲外になります。このチュートリアルでは、TLS/SSL に関する事前の知識と、有効な x.509 証明書にアクセスできることを前提としています。

注意

有効な x.509 証明書が必要です。

--tlsAllowInvalidCertificatesまたはnet.tls.allowInvalidCertificates: trueを指定した場合、無効な証明書は TLS 接続を確立するには十分ですが、認証には不十分です。

シャーディングされたクラスターまたはレプリカセット(指定されている場合はnet.tls.clusterFile 、およびnet.tls.certificateKeyFile )へのメンバーシップを検証するために使用するメンバー証明書には、次のプロパティが必要です。

  • 単一の認証局 (CA) がすべての x を発行する必要があります。シャーディングされたクラスターまたはレプリカセットのノードの509証明書。

  • メンバー証明書のsubjectにある識別名( DN )は、次の属性の少なくとも 1 つに空でない値を指定する必要があります。

    • 組織 (O)

    • 組織単位 (OU)

    • ドメインコンポーネント (DC)

  • 組織属性( O )、組織単位属性( OU )、ドメインコンポーネント( DC )は、 net.tls.clusterFile } 証明書とnet.tls.certificateKeyFile証明書の両方からのものと一致する必要があります他のクラスター ノード(または設定されている場合はtlsX509ClusterAuthDNOverride値)。

    一致させるには、証明書がこれらの属性のすべての仕様と一致する必要があります(これらの属性が指定されていない場合も含め)。 属性の順序は関係ありません。

    次の例では、2 つのDNには、 OOUの一致する仕様と、 DC属性の非指定が含まれています。

    CN=host1,OU=Dept1,O=MongoDB,ST=NY,C=US
    C=US, ST=CA, O=MongoDB, OU=Dept1, CN=host2

    ただし、次の 2 つのDNには、1 つには 2 つのOU仕様が含まれ、もう 1 つの仕様しか含まれていないため、 OU属性と不一致が含まれています。

    CN=host1,OU=Dept1,OU=Sales,O=MongoDB
    CN=host2,OU=Dept1,O=MongoDB
  • マルチクラスター配置では、各クラスターで異なる X. 509ノード証明書を使用する必要があります。 各証明書のOOU 、およびDC識別名(DN)フィールドに一意の値が必要です。

    2 つのクラスターが同じ DN 値を持つ証明書を持っている場合、一方のクラスターで侵害されたサーバーは、もう一方のクラスターのノードとして認証できます。

  • コモンネーム( CN )またはサブジェクト代替名( SAN )のいずれかのエントリは、他のクラスター ノードのサーバー ホスト名と一致する必要があります。 MongoDB 4.2 以降では、 SANを比較する際に、MongoDB は DNS 名または IP アドレスのいずれかを比較できます。 以前のバージョンでは MongoDB は DNS 名のみを比較していました。

    たとえば、クラスターの証明書には次のサブジェクトが含まれる可能性があります。

    subject= CN=<myhostname1>,OU=Dept1,O=MongoDB,ST=NY,C=US
    subject= CN=<myhostname2>,OU=Dept1,O=MongoDB,ST=NY,C=US
    subject= CN=<myhostname3>,OU=Dept1,O=MongoDB,ST=NY,C=US
  • certificateKeyFile として使用される証明書に extendedKeyUsage が含まれている場合、値には clientAuth(「TLS Web クライアント認証」)と serverAuth(「TLS Web サーバー認証」)の両方を含める必要があります。

    extendedKeyUsage = clientAuth, serverAuth
  • clusterFile として使用される証明書に extendedKeyUsage が含まれている場合、値には clientAuth が含まれている必要があります。

    extendedKeyUsage = clientAuth
  • x.509証明書は期限切れであってはなりません

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

ローリング アップグレード手順以外では、レプリカセットまたはシャーディングされたクラスターのすべてのコンポーネントは、配置内の他のすべてのコンポーネントに安全に接続できるようにするために、同じ--clusterAuthMode 設定を使用する必要があります。

レプリカセットの配置の場合、これにはレプリカセットのすべてのmongodメンバーが含まれます。

シャーディングされたクラスターの配置の場合、これにはすべてのmongodまたはmongosインスタンスが含まれます。

注意

mongodmongos は、デフォルトで localhost にバインドされます。配置のノードが異なるホスト上で実行されている場合、またはリモート クライアントを配置に接続する場合は、--bind_ip または net.bindIp を指定する必要があります。

注意

このセクションの手順では、 tls設定/オプションを使用します。 非推奨のsslエイリアスの使用手順については、「 コマンドライン オプションの使用 」を参照してください( ssl )。

MongoDB では常に TLS 1.0 以降をサポートしているため、 tlsの設定/オプションはsslオプションと同じ機能を提供します。

mongod --replSet <name> --tlsMode requireTLS --clusterAuthMode x509 --tlsClusterFile <path to membership certificate and key PEM file> --tlsCertificateKeyFile <path to TLS/SSL certificate and key file> --sslCAFile <path to root CA file> --bind_ip localhost,<hostname(s)|ip address(es)>

重要

x.509 認証を使用する場合、--tlsCertificateSelector または --net.tls.certificateSelector を使用しない限り、--tlsCAFile または net.tls.CAFile を指定する必要があります。

特定の構成に必要な追加オプション(TLS/SSL など)を含めます。 について

security:
clusterAuthMode: x509
net:
tls:
mode: requireTLS
certificateKeyFile: <path to its TLS/SSL certificate and key file>
CAFile: <path to root CA PEM file to verify received certificate>
clusterFile: <path to its certificate key file for membership authentication>
bindIp: localhost,<hostname(s)|ip address(es)>

重要

x.509 認証を使用する場合、--tlsCertificateSelector または --net.tls.certificateSelector を使用しない限り、--tlsCAFile または net.tls.CAFile を指定する必要があります。

特定の構成に必要な追加オプション(TLS/SSL など)を含めます。

詳しくは、「 TLS/SSL 用にmongodmongosを構成する 」を参照してください。

注意

このセクションの手順では、非推奨のssl設定とオプションを使用します。 tlsエイリアスの使用手順については、「コマンドライン オプションの使用( tls )」を参照してください。

MongoDB では常に TLS 1.0 以降をサポートしているため、 tlsの設定/オプションはsslオプションと同じ機能を提供します。

内部クラスター メンバー認証に x.509 証明書を指定するには、レプリカセットのメンバーの次の例のように、追加の TLS/SSL オプション--clusterAuthMode--sslClusterFileを追加します。

mongod --replSet <name> --sslMode requireSSL --clusterAuthMode x509 --sslClusterFile <path to membership certificate and key PEM file> --sslPEMKeyFile <path to TLS/SSL certificate and key PEM file> --sslCAFile <path to root CA PEM file> --bind_ip localhost,<hostname(s)|ip address(es)>

重要

x.509 認証を使用する場合、--tlsCertificateSelector または --net.tls.certificateSelector を使用しない限り、--tlsCAFile または net.tls.CAFile を指定する必要があります。

特定の構成に必要な追加オプション(TLS/SSL など)を含めます。

security:
clusterAuthMode: x509
net:
ssl:
mode: requireSSL
PEMKeyFile: <path to TLS/SSL certificate and key PEM file>
CAFile: <path to root CA PEM file>
clusterFile: <path to x.509 membership certificate and key PEM file>
bindIp: localhost,<hostname(s)|ip address(es)>

重要

x.509 認証を使用する場合、--tlsCertificateSelector または --net.tls.certificateSelector を使用しない限り、--tlsCAFile または net.tls.CAFile を指定する必要があります。

特定の構成に必要な追加オプション(TLS/SSL など)を含めます。

詳しくは、「 TLS/SSL 用にmongodmongosを構成する 」を参照してください。

キーファイルによる内部認証から x にアップグレードします。 509内部認証については、「自己管理型 MongoDB をキーファイル認証から x にアップグレードする 」を参照してください。 509認証。

異なるDNを使用して新しい証明書に、証明書のローリング アップデートを実行するには、「 x のローリング アップデート 」を参照してください。自己管理型クラスター上の新しい識別名を含む509証明書

戻る

シャーディングされたクラスターキーのローテーション