x を使用します。自己管理型 MongoDB によるメンバーシップ認証の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 メンバー証明書
注意
有効な x.509 証明書が必要です。
--tlsAllowInvalidCertificates
またはnet.tls.allowInvalidCertificates: true
を指定した場合、無効な証明書は TLS 接続を確立するには十分ですが、認証には不十分です。
証明書の要件
ノード証明書を使用して、シャーディングされたクラスターまたはレプリカセットへのメンバーシップを検証します。 メンバー証明書はnet.tls.clusterFile
とnet.tls.certificateKeyFile
に保存されています。 ノード証明書の要件:
単一の認証局 (CA) が、シャーディングされたクラスターまたはレプリカセットのノードすべての x.509 証明書を発行する必要があります。
x.509証明書は期限切れであってはなりません。
メンバー証明書の
subject
にある識別名(DN
)は、次の属性の少なくとも 1 つに空でない値を指定する必要があります。組織 (
O
)組織単位 (
OU
)ドメインコンポーネント (
DC
)
マルチクラスター配置では、各クラスターで異なる X. 509ノード証明書を使用する必要があります。 各証明書の
O
、OU
、およびDC
識別名(DN)フィールドに一意の値が必要です。2 つのクラスターが同じ DN 値を持つ証明書を持っている場合、一方のクラスターで侵害されたサーバーは、もう一方のクラスターのノードとして認証できます。
各クラスター ノード証明書には、
net.tls.clusterFile
} 証明書とnet.tls.certificateKeyFile
証明書に同一のO
、OU
、およびDC
が含まれている必要があります。 これは、tlsX509ClusterAuthDNOverride
値が設定されている場合は、にも適用されます。 Attribute order doesn't matter.以下に例を示します。 以下の 2 つの
DN
には、O
とOU
の指定が一致していますが、DC
は指定されていません。CN=host1,OU=Dept1,O=MongoDB,ST=NY,C=US C=US, ST=CA, O=MongoDB, OU=Dept1, CN=host2 次の例は誤りです。
DN
が一致しないためです。 一方のDN
にはOU
仕様が 2 つあり、もう一方のOU
仕様は 1 つだけです。CN=host1,OU=Dept1,OU=Sales,O=MongoDB CN=host2,OU=Dept1,O=MongoDB コモンネーム(
CN
)またはサブジェクト代替名(SAN
)のいずれかのエントリは、他のクラスター ノードのサーバー ホスト名と一致する必要があります。 MongoDB 4.2 以降では、SAN
を比較する際に、MongoDB は DNS 名または IP アドレスのいずれかを比較できます。 以前のバージョンでは MongoDB は DNS 名のみを比較していました。たとえば、クラスターの証明書には次の
subject
が含まれる可能性があります。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
レプリカセット/シャーディングされたクラスターの構成
ローリング アップグレード手順以外では、レプリカセットまたはシャーディングされたクラスターのすべてのコンポーネントは、配置内の他のすべてのコンポーネントに安全に接続できるようにするために、同じ--clusterAuthMode
設定を使用する必要があります。
レプリカセットの配置の場合、これにはレプリカセットのすべてのmongod
メンバーが含まれます。
シャーディングされたクラスターの配置の場合、これにはすべてのmongod
またはmongos
インスタンスが含まれます。
注意
mongod
と mongos
は、デフォルトで localhost にバインドされます。配置のノードが異なるホスト上で実行されている場合、またはリモート クライアントを配置に接続する場合は、--bind_ip
または net.bindIp
を指定する必要があります。
コマンドライン オプション(tls
)の使用
注意
このセクションの手順では、 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 など)を含めます。
コマンドライン オプション(ssl
)の使用
注意
このセクションの手順では、非推奨の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 など)を含めます。
詳細情報
キーファイルによる内部認証から x にアップグレードします。 509内部認証については、「自己管理型 MongoDB をキーファイル認証から x にアップグレードする 」を参照してください。 509認証。
異なるDN
を使用して新しい証明書に、証明書のローリング アップデートを実行するには、「 x のローリング アップデート 」を参照してください。自己管理型クラスター上の新しい識別名を含む509証明書