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

自己管理型 MongoDB をキーファイル認証から x にアップグレードします。 509認証

項目一覧

  • アップグレード手順( tlsオプションを使用)
  • アップグレード手順( sslオプションを使用)

現在キーファイル認証を使用しているクラスターを x にアップグレードする方法。 509認証には、次のローリング アップグレード プロセスを使用します。

注意

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

注意

MongoDB は、 net.ssl設定(および--sslコマンドライン オプション)に対応するnet.tls設定(および--tlsコマンドライン オプション)を提供します。 MongoDB は常に TLS 1.0以降をサポートしているため、新しいtls設定はssl設定と同じ機能を提供します。

このセクションの手順では、 tls設定とオプションを使用します。 ssl設定/オプションの使用手順については、「 アップグレード手順( sslオプションの使用) 」を参照してください。

注意

この手順では、 tlsの設定とオプションを使用します。 ssl設定/オプションの使用手順については、「現在 TLS/SSL を使用しているクラスター( sslオプションを使用) 」を参照してください。

TLS/SSL とキーファイル認証を使用するクラスターの場合、x.509 クラスター認証にアップグレードするには、次のローリング アップグレード プロセスを使用します。

  1. クラスターの各ノードに対して、次の設定を構成ファイルに追加し、再起動します。

    • security.clusterAuthMode
      sendKeyFileに設定します。 この設定値では、各ノードはノードとして認証するためにキーファイルを送信し続けます。 ただし、各ノードは他のノードを認証するために、他のノードから キーファイル または 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/membershipkey
    replication:
    replSetName: myReplicaSet
    net:
    bindIp: localhost,mongodb0.example.net
    port: 27017
    systemLog:
    destination: file
    path: "/var/log/mongodb/mongod.log"
    logAppend: true
    storage:
    dbPath: "/var/lib/mongodb"
    processManagement:
    fork: true

    続行する前に、クラスターのすべてのノードを更新して、 security.clusterAuthModenet.tls.clusterFile設定を含めます。

  2. 各ノードに接続し、 setParameterコマンドを使用してclusterAuthModesendX509に更新します。 [1]

    db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } )

    sendX509では、各ノードはnet.tls.clusterFileを送信して自分自身をメンバーとして認証します。 ただし、各ノードは他のノードを認証するために、他のノードから キーファイル または x.509 証明書のいずれかを受け取ることができます。

    続行する前に、クラスターのすべてのノードをこの設定にアップグレードします。

  3. 任意ですが推奨します。 最後に、クラスターの各ノードで、ノードに接続し、 setParameterコマンドを使用してclusterAuthModex509に更新し、認証に x.509 証明書のみを使用するようにします。 [1]

    db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } )
  4. すべてのノードをアップグレードした後、適切な 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: x509
    replication:
    replSetName: myReplicaSet
    net:
    bindIp: localhost,mongodb0.example.net
    port: 27017
    systemLog:
    destination: file
    path: "/var/log/mongodb/mongod.log"
    logAppend: true
    storage:
    dbPath: "/var/lib/mongodb"
    processManagement:
    fork: true

Tip

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

構成ファイルの代わりにコマンドライン オプションを使用して mongodmongos を設定することもできます。

注意

この手順では、 tlsオプションを使用します。 ssl設定/オプションの使用手順については、「現在 TLS/SSL を使用していないクラスター( sslオプションを使用) 」を参照してください。

キーファイル認証を使用するが TLS/SSL は使用しないクラスターの場合、x.509 メンバーシップ認証と TLS/SSL 接続にアップグレードするには、以下を実行します。

  1. クラスターの各ノードに対して、次の設定を構成ファイルに追加し、再起動します。

    • 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.clusterAuthMode
      sendKeyFileに設定します。 これにより、各ノードは、ノードとして認証するためにキーファイルを送信し続けることができます。 ただし、各ノードは他のノードを認証するために、他のノードから キーファイル または x.509 証明書のいずれかを受け取ることができます。

    その他のTLS/SSL オプションと特定の構成に適したその他のオプションを含めます。

    以下に例を挙げます。

    net:
    tls:
    mode: allowTLS
    certificateKeyFile: /etc/ssl/mongodb.pem
    clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem"
    CAFile: /etc/ssl/caToValidateReceivedCertificates.pem
    security:
    clusterAuthMode: sendKeyFile
    keyFile: /my/securely/located/membershipkey
    replication:
    replSetName: myReplicaSet
    net:
    bindIp: localhost,mongodb0.example.net
    port: 27017
    systemLog:
    destination: file
    path: "/var/log/mongodb/mongod.log"
    logAppend: true
    storage:
    dbPath: "/var/lib/mongodb"
    processManagement:
    fork: true

    クラスターのすべてのノードを、 net.tls.modenet.tls.certificateKeyFilenet.tls.clusterFilesecurity.clusterAuthModeを含むようにアップグレードします。

  2. 各ノードに接続し、 setParameterコマンド[1]を使用して次の操作を行います。

    1. tlsModepreferSSLに更新します。 tlsModepreferTLSに設定すると、ノードは TLS/SSL と非 TLS/SSL 以外の受信接続の両方を受け入れ、その送信接続は TLS/SSL を使用します。

    2. clusterAuthModesendX509に更新します。 clusterAuthModesendX509に設定すると、各ノードはnet.tls.clusterFileを送信して自分自身をメンバーとして認証します。 ただし、各ノードは、それらのノードを認証するために、他のノードからキーファイルまたは x.509 証明書のいずれかを引き続き受け入れます。

    db.adminCommand( { setParameter: 1, tlsMode: "preferTLS" } );
    db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } );

    続行する前に、クラスターのすべてのノードをこれらの設定にアップグレードします。

  3. すべてのノードをアップグレードした後、適切な TLS/SSL と x.509 設定で構成ファイルを編集し、次回の再起動時にクラスターが x.509 認証を使用するようにします。

    net:
    tls:
    mode: preferTLS
    certificateKeyFile: /etc/ssl/mongodb.pem
    clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem"
    CAFile: /etc/ssl/caToValidateReceivedCertificates.pem
    security:
    clusterAuthMode: sendX509
    replication:
    replSetName: myReplicaSet
    net:
    bindIp: localhost,mongodb0.example.net
    port: 27017
    systemLog:
    destination: file
    path: "/var/log/mongodb/mongod.log"
    logAppend: true
    storage:
    dbPath: "/var/lib/mongodb"
    processManagement:
    fork: true

    注意

    この時点で、

    • クラスター内のノードは TLS/SSL 接続を使用します。 ただし、ノードはクライアント アプリケーションから非 TLS/SSL 接続を受け入れることができます。

    • ノードはメンバーシップ認証のために x.509 証明書を送信しますが、他のノードから x.509 証明書またはキーファイルを受け入れて、他のノードのメンバーシップを検証できます。

    クライアント アプリケーションから TLS/SSL 接続を強制し、メンバーシップ認証に x.509 のみを受け入れるようにするには、次の手順を参照してください。

  4. 任意ですが推奨します。 メンバーシップ認証にTLS/SSL接続のみと x.509 証明書のみを使用するようにすべてのノードを更新します。

    重要

    この TLS/SSL 接続要件はすべての接続に適用されます。つまり、クライアントとクラスターのノードの両方で同期されます。 つまり、クライアントは TLS/SSL 接続を指定し、クラスターに接続するときに証明書鍵ファイルを提示する必要があります。 TLS/SSL を使用した接続の詳細については、「クライアント証明書を必要とする MongoDB インスタンスへの接続」を参照してください。 「クライアントが証明書を提示した場合のみ検証する 」も参照してください。

    net.tls.moderequireTLSに、 security.clusterAuthModex509に更新します。

    以下に例を挙げます。

    net:
    tls:
    mode: requireTLS
    certificateKeyFile: /etc/ssl/mongodb.pem
    clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem"
    CAFile: /etc/ssl/caToValidateReceivedCertificates.pem
    security:
    clusterAuthMode: x509
    replication:
    replSetName: myReplicaSet
    net:
    bindIp: localhost,mongodb0.example.net
    port: 27017
    systemLog:
    destination: file
    path: "/var/log/mongodb/mongod.log"
    logAppend: true
    storage:
    dbPath: "/var/lib/mongodb"
    processManagement:
    fork: true

Tip

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

構成ファイルの代わりにコマンドライン オプションを使用して mongodmongos を設定することもできます。

注意

MongoDB は、 net.ssl設定(および--sslコマンドライン オプション)に対応するnet.tls設定(および--tlsコマンドライン オプション)を提供します。 MongoDB は常に TLS 1.0以降をサポートしているため、新しいtls設定はssl設定と同じ機能を提供します。

このセクションの手順では、 sslオプションを使用します。 tlsオプションの使用手順については、「アップグレード手順( tlsオプションの使用) 」を参照してください。

注意

この手順では、 sslオプションを使用します。 tlsオプションを使用する手順については、「現在 TLS/SSL を使用しているクラスター( sslオプションを使用) 」を参照してください。

TLS/SSL とキーファイル認証を使用するクラスターの場合、x.509 クラスター認証にアップグレードするには、次のローリング アップグレード プロセスを使用します。

  1. クラスターの各ノードで、オプション--clusterAuthModesendKeyFileに設定し、オプション--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 証明書のいずれかを受け入れることができるようになりました。 クラスターのすべてのノードをこの設定にアップグレードします。

  2. 次に、クラスターの各ノードで、ノードに接続し、 setParameterコマンドを使用してclusterAuthModesendX509に更新します。 [1]たとえば、

    db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } )

    この設定では、各ノードは x を使用します。前の手順で--sslClusterFileオプションで指定された509証明書を使用して、自分自身をメンバーとして認証します。 ただし、各ノードは引き続きキーファイルまたは x のいずれかを受け入れます。他のノードからの509証明書を使用して、それらのノードを認証します。 クラスターのすべてのノードをこの設定にアップグレードします。

  3. 任意ですが推奨します。 最後に、クラスターの各ノードで、ノードに接続し、 setParameterコマンドを使用してclusterAuthModex509に更新し、認証に x.509 証明書のみを使用するようにします。 [1]たとえば次のとおりです。

    db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } )
  4. すべてのノードをアップグレードした後、適切な x.509 設定で構成ファイルを編集し、次回の再起動時にクラスターが x.509 認証を使用するようにします。

さまざまなモードとその説明については、 --clusterAuthModeを参照してください。

注意

この手順では、 sslオプションを使用します。 tlsオプションを使用する手順については、「キーファイルを使用して TLS/SSL を使用しないクラスターの更新( tlsオプションを使用) 」を参照してください。

キーファイル認証を使用するが TLS/SSL は使用しないクラスターの場合、x.509 認証にアップグレードするには、次のローリング アップグレード プロセスを使用します。

  1. クラスターの各ノードで、オプション--sslModeallowSSLに設定し、オプション--clusterAuthModesendKeyFileに設定し、オプション--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 証明書のいずれかを受け入れることができるようになりました。

    クラスターのすべてのノードをこれらの設定にアップグレードします。

  2. 次に、クラスターの各ノードで、ノードに接続し、 setParameterコマンドを使用して、 sslModepreferSSLに、 clusterAuthModesendX509に更新します。 [1]たとえば次のとおりです。

    db.adminCommand( { setParameter: 1, sslMode: "preferSSL", clusterAuthMode: "sendX509" } )

    sslModepreferSSLに設定すると、ノードは TLS/SSL と非 TLS/SSL 以外の受信接続の両方を受け入れ、送信接続は TLS/SSL を使用します。

    clusterAuthModesendX509に設定すると、各ノードは x を使用します。前の手順で--sslClusterFileオプションで指定された509証明書を使用し、自分自身をメンバーとして認証します。 ただし、各ノードは引き続きキーファイルまたは x のいずれかを受け入れます。他のノードからの509証明書を使用して、それらのノードを認証します。

    クラスターのすべてのノードをこれらの設定にアップグレードします。

  3. 任意ですが推奨します。 最後に、クラスターの各ノードで、ノードに接続し、 setParameterコマンドを使用して、 sslModerequireSSLに、 clusterAuthModex509に更新します。 [1]たとえば次のとおりです。

    db.adminCommand( { setParameter: 1, sslMode: "requireSSL", clusterAuthMode: "x509" } )

    sslModerequireSSLに設定すると、ノードは TLS/SSLs 接続のみを使用します。

    clusterAuthModex509に設定すると、ノードは認証に x.509 証明書のみを使用します。

  4. すべてのノードをアップグレードした後、適切な TLS/SSL と x.509 設定で構成ファイルを編集し、次回の再起動時にクラスターが x.509 認証を使用するようにします。

さまざまなモードとその説明については、 --clusterAuthModeを参照してください。

[1]1234567 setParameterコマンドを使用する代わりに、適切な TLS/SSL と x509 のオプションと値を使用してノードを再起動することもできます。

戻る

x を使用します。 509