現在キーファイル認証を使用している自己管理型クラスターを X.509認証にアップグレードするには、次のローリング アップグレード プロセスを使用します。
注意
MongoDB は、TLS 1.2+ が利用可能なシステムでは、TLS 1.0 および TLS 1.1暗号化のサポートを無効にします。
アップグレード手順(tls オプションを使用)
注意
MongoDB は、 net.ssl設定(および--sslコマンドライン オプション)に対応するnet.tls設定(および--tlsコマンドライン オプション)を提供します。 MongoDB は常に TLS 1.0以降をサポートしているため、新しいtls設定はssl設定と同じ機能を提供します。
このセクションの手順では、 tls設定とオプションを使用します。 ssl設定/オプションの使用手順については、「アップグレード手順( sslオプションの使用) 」を参照してください。
TLS/SSL とキーファイルを使用したクラスターのアップグレード(tls オプションを使用)
注意
この手順では、 tlsの設定とオプションを使用します。 ssl設定/オプションの使用手順については、「現在 TLS/SSL を使用しているクラスター( sslオプションを使用) 」を参照してください。
TLS/SSL と キーファイル認証を使用するクラスターの場合、X.509 クラスター認証にアップグレードするには、次のローリング アップグレード プロセスを使用します。
クラスターの各ノードに対して、次の設定を構成ファイルに追加し、再起動します。
security.clusterAuthModesendKeyFileに設定します。この設定値では、各ノードはノードとして認証するためにキーファイルを送信し続けます。ただし、各ノードは他のノードを認証するために、他のノードから キーファイル または X.509 証明書を受け取ることができます。
net.tls.clusterFile- メンバーシップ認証用にノードの証明書鍵ファイルの適切なパスに設定します。
mongod/mongosは、このファイルをクラスターの他のノードに提示し、自分自身をノードとして識別します。
その他のTLS/SSL オプションと特定の構成に適したその他のオプションを含めます。
以下に例を挙げます。
net: tls: mode: requireTLS certificateKeyFile: /etc/ssl/mongodb.pem CAFile: /etc/ssl/caToValidateReceivedCertificates.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem"security: clusterAuthMode: sendKeyFile keyFile: /my/securely/located/membershipkeyreplication: replSetName: myReplicaSetnet: bindIp: localhost,mongodb0.example.net port: 27017systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: truestorage: dbPath: "/var/lib/mongodb"processManagement: fork: true続行する前に、クラスターのすべてのノードを更新して、
security.clusterAuthModeとnet.tls.clusterFile設定を含めます。Connect to each node and use the
setParametercommand to update theclusterAuthModetosendX509. [1]db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } )sendX509では、各ノードはnet.tls.clusterFileを送信して自分自身をメンバーとして認証します。ただし、各ノードは他のノードからキーファイルまたは X.509 証明書を受け取り、それらのノードを認証できます。続行する前に、クラスターのすべてのノードをこの設定にアップグレードします。
Optional but recommended. Finally, for each node of the cluster, connect to the node and use the
setParametercommand to update theclusterAuthModetox509to only use the X.509 certificate for authentication. [1]db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } )すべてのノードをアップグレードした後、適切な X.509 設定を使用して構成ファイルを編集し、次回の再起動時にクラスターが X.509認証を使用するようにします。(例: )。
net: tls: mode: requireTLS certificateKeyFile: /etc/ssl/mongodb.pem CAFile: /etc/ssl/caToValidateReceivedCertificates.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem"security.clusterAuthMode: x509replication: replSetName: myReplicaSetnet: bindIp: localhost,mongodb0.example.net port: 27017systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: truestorage: dbPath: "/var/lib/mongodb"processManagement: fork: true
Tip
構成ファイルの代わりにコマンドライン オプションを使用して mongod と mongos を設定することもできます。
mongodについては、 ---tlsMode---tlsCertificateKeyFile---tlsCAFile---tlsClusterFile---clusterAuthModeを参照してください。mongosについては、 ---tlsMode---tlsCertificateKeyFile---tlsCAFile---tlsClusterFile---clusterAuthModeを参照してください。
キーファイルを使用するが TLS/SSL を使用しないクラスターの更新(tls オプションを使用)
注意
この手順では、 tlsオプションを使用します。 ssl設定/オプションの使用手順については、「現在 TLS/SSL を使用していないクラスター( sslオプションを使用) 」を参照してください。
キーファイル認証を使用するが TLS/SSL は使用しないクラスターの場合、X.509 メンバーシップ認証と TLS/SSL 接続にアップグレードするには次のようにします。
クラスターの各ノードに対して、次の設定を構成ファイルに追加し、再起動します。
net.tls.mode- を
allowTLSに設定します。 この値により、ノードは TLS/SSL と TLS/SSL 以外の着信接続の両方を受け入れることができます。 送信接続では、TLS/SSL は使用されません。
net.tls.certificateKeyFile- TLS/SSL 証明書と鍵が含まれるファイルのパスを設定します。
mongod/mongosは、インスタンスの ID を確立するためにこのファイルをクライアントに提示します。 TLS/SSL を使用する場合は必須です。
net.tls.clusterFile- メンバーシップ認証用にノードの証明書鍵ファイルの適切なパスに設定します。
mongod/mongosは、このファイルをクラスターの他のノードに提示し、自分自身をノードとして識別します。
net.tls.CAFile- 受信した証明書を確認するため、証明書チェーンを含むファイルのパスに設定します。
security.clusterAuthModesendKeyFileに設定します。これにより、各ノードは、ノードとして認証するためにキーファイルを送信し続けることができます。ただし、各ノードは他のノードを認証するために、他のノードから キーファイル または X.509 証明書を受け取ることができます。
その他のTLS/SSL オプションと特定の構成に適したその他のオプションを含めます。
以下に例を挙げます。
net: tls: mode: allowTLS certificateKeyFile: /etc/ssl/mongodb.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem" CAFile: /etc/ssl/caToValidateReceivedCertificates.pemsecurity: clusterAuthMode: sendKeyFile keyFile: /my/securely/located/membershipkeyreplication: replSetName: myReplicaSetnet: bindIp: localhost,mongodb0.example.net port: 27017systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: truestorage: dbPath: "/var/lib/mongodb"processManagement: fork: trueクラスターのすべてのノードを、
net.tls.mode、net.tls.certificateKeyFile、net.tls.clusterFile、security.clusterAuthModeを含むようにアップグレードします。Connect to each node and use the
setParametercommand [1] to:clusterAuthModeをsendX509に更新します。clusterAuthModeをsendX509に設定すると、各ノードはnet.tls.clusterFileを送信して自分自身をメンバーとして認証します。ただし、各ノードは、それらのノードを認証するために、他のノードからの X.509 証明書のいずれかを引き続き受け入れます。
db.adminCommand( { setParameter: 1, tlsMode: "preferTLS" } );db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } );続行する前に、クラスターのすべてのノードをこれらの設定にアップグレードします。
すべてのノードをアップグレードした後、適切な TLS/SSL と X.509 設定を使用して構成ファイルを編集し、次回の再起動時にクラスターが X.509認証を使用するようにします。
net: tls: mode: preferTLS certificateKeyFile: /etc/ssl/mongodb.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem" CAFile: /etc/ssl/caToValidateReceivedCertificates.pemsecurity: clusterAuthMode: sendX509replication: replSetName: myReplicaSetnet: bindIp: localhost,mongodb0.example.net port: 27017systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: truestorage: dbPath: "/var/lib/mongodb"processManagement: fork: true注意
この時点で、
クラスター内のノードは TLS/SSL 接続を使用します。 ただし、ノードはクライアント アプリケーションから非 TLS/SSL 接続を受け入れることができます。
ノードは メンバーシップ認証のために X.509 証明書を送信しますが、他のノードから X.509 証明書またはキーファイルを受け入れて、他のノードのメンバーシップを検証できます。
クライアントアプリケーションから TLS/SSL 接続を強制し、 メンバーシップ認証に X.509 のみを受け入れるようにするには、次のステップを参照してください。
任意ですが推奨します。メンバーシップ認証に
TLS/SSL接続のみと X.509 証明書のみを使用するようにすべてのノードを更新します。重要
この TLS/SSL 接続要件は、すべての接続に適用されます。つまり、クライアントだけでなく、クラスターのノードとの接続にも適用されます。つまり、クライアントは TLS/SSL 接続を指定し、クラスターに接続する際に証明書鍵ファイルを提示する必要があります。TLS/SSL を使用した接続の詳細については、「TLS 対応レプリカセットへの接続」を参照してください。「クライアントが証明書を提示した場合のみ検証する」も参照してください。
net.tls.modeをrequireTLSに、security.clusterAuthModeをx509に更新します。以下に例を挙げます。
net: tls: mode: requireTLS certificateKeyFile: /etc/ssl/mongodb.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem" CAFile: /etc/ssl/caToValidateReceivedCertificates.pemsecurity: clusterAuthMode: x509replication: replSetName: myReplicaSetnet: bindIp: localhost,mongodb0.example.net port: 27017systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: truestorage: dbPath: "/var/lib/mongodb"processManagement: fork: true
Tip
構成ファイルの代わりにコマンドライン オプションを使用して mongod と mongos を設定することもできます。
mongodについては、 ---tlsMode---tlsCertificateKeyFile---tlsCAFile---tlsClusterFile---clusterAuthModeを参照してください。mongosについては、 ---tlsMode---tlsCertificateKeyFile---tlsCAFile---tlsClusterFile---clusterAuthModeを参照してください。
アップグレード手順(ssl オプションを使用)
注意
MongoDB は、 net.ssl設定(および--sslコマンドライン オプション)に対応するnet.tls設定(および--tlsコマンドライン オプション)を提供します。 MongoDB は常に TLS 1.0以降をサポートしているため、新しいtls設定はssl設定と同じ機能を提供します。
このセクションの手順では、 sslオプションを使用します。 tlsオプションの使用手順については、「アップグレード手順( tlsオプションの使用) 」を参照してください。
現在 TLS/SSL を使用しているクラスター(ssl オプションを使用)
注意
この手順では、 sslオプションを使用します。 tlsオプションを使用する手順については、「現在 TLS/SSL を使用しているクラスター( sslオプションを使用) 」を参照してください。
TLS/SSL と キーファイル認証を使用するクラスターの場合、X.509 クラスター認証にアップグレードするには、次のローリング アップグレード プロセスを使用します。
クラスターの各ノードで、オプション
--clusterAuthModeをsendKeyFileに設定し、オプション--sslClusterFileをノードの証明書の適切なパスに設定してノードを起動します。 TLS/SSL オプションや、特定の構成に必要なその他のオプションを含めます。 例:mongod --replSet <name> --sslMode requireSSL --clusterAuthMode sendKeyFile --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 証明書のいずれかを受け入れることができるようになりました。クラスターのすべてのノードをこの設定にアップグレードします。
Then, for each node of a cluster, connect to the node and use the
setParametercommand to update theclusterAuthModetosendX509. [1] For example,db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } )この設定では、各ノードは、前のステップで
--sslClusterFileオプションで指定された X.509 証明書を使用して、自分自身をメンバーとして認証します。ただし、各ノードは、それらのノードを認証するために、他のノードからの X.509 証明書のいずれかを引き続き受け入れます。クラスターのすべてのノードをこの設定にアップグレードします。Optional but recommended. Finally, for each node of the cluster, connect to the node and use the
setParametercommand to update theclusterAuthModetox509to only use the X.509 certificate for authentication. [1] For example:db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } )すべてのノードをアップグレードした後、適切な X.509 設定を使用して構成ファイルを編集し、次回の再起動時にクラスターが X.509認証を使用するようにします。
さまざまなモードとその説明については、 --clusterAuthModeを参照してください。
現在 TLS/SSL を使用していないクラスター(ssl オプションを使用)
注意
この手順では、 sslオプションを使用します。 tlsオプションを使用する手順については、「キーファイルを使用して TLS/SSL を使用しないクラスターの更新( tlsオプションを使用) 」を参照してください。
キーファイル認証を使用するが TLS/SSL は使用しないクラスターの場合、X.509認証にアップグレードするには、次のローリング アップグレード プロセスを使用します。
クラスターの各ノードで、オプション
--sslModeをallowSSLに設定し、オプション--clusterAuthModeをsendKeyFileに設定し、オプション--sslClusterFileをノードの証明書の適切なパスに設定してノードを起動します。 TLS/SSL オプションや、特定の構成に必要なその他のオプションを含めます。 例:mongod --replSet <name> --sslMode allowSSL --clusterAuthMode sendKeyFile --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)>--sslMode allowSSL設定の場合、ノードは TLS/SSL と非 TLS/SSL 受信接続の両方を受け入れることができます。 ノードの送信接続では、TLS/SSL は使用されません。--clusterAuthMode sendKeyFile設定により、各ノードは引き続きキーファイルを使用して自分自身をメンバーとして認証できます。ただし、各ノードは他のノードを認証するために、キーファイルまたは X.509 証明書のいずれかを受け入れることができるようになりました。クラスターのすべてのノードをこれらの設定にアップグレードします。
Then, for each node of a cluster, connect to the node and use the
setParametercommand to update thesslModetopreferSSLand theclusterAuthModetosendX509. [1] For example:db.adminCommand( { setParameter: 1, sslMode: "preferSSL", clusterAuthMode: "sendX509" } )sslModeをpreferSSLに設定すると、ノードは TLS/SSL と非 TLS/SSL 以外の受信接続の両方を受け入れ、送信接続は TLS/SSL を使用します。clusterAuthModeをsendX509に設定すると、各ノードは、前のステップで--sslClusterFileオプションで指定された X.509 証明書を使用して、自分自身をメンバーとして認証します。ただし、各ノードは、それらのノードを認証するために、他のノードからのキーファイルまたは X.509 証明書のいずれかを引き続き受け入れます。クラスターのすべてのノードをこれらの設定にアップグレードします。
Optional but recommended. Finally, for each node of the cluster, connect to the node and use the
setParametercommand to update thesslModetorequireSSLand theclusterAuthModetox509. [1] For example:db.adminCommand( { setParameter: 1, sslMode: "requireSSL", clusterAuthMode: "x509" } )sslModeをrequireSSLに設定すると、ノードは TLS/SSLs 接続のみを使用します。clusterAuthModeをx509に設定すると、ノードは認証に X.509 証明書のみを使用します。すべてのノードをアップグレードした後、適切な TLS/SSL と X.509 設定を使用して構成ファイルを編集し、次回の再起動時にクラスターが X.509認証を使用するようにします。
さまざまなモードとその説明については、 --clusterAuthModeを参照してください。
| [1] | (1, 2, 3, 4, 5, 6, 7) As an alternative to using the setParameter command, you can also restart the nodes with the appropriate TLS/SSL and x509 options and values. |