AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

キーファイル認証からX.509認証へのアップグレードする

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

注意

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

注意

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

The procedures in this section use the tls settings/options. For procedures using the ssl settings/options, see Upgrade Procedures (Using ssl Options).

注意

The procedure uses the tls settings/options. For procedures using the ssl settings/options, see Clusters Currently Using TLS/SSL (Using ssl Options).

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 コマンドを使用してclusterAuthMode を に更新し、認証にx509 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 を設定することもできます。

注意

The procedure uses the tls options. For procedures using the ssl settings/options, see Clusters Currently Not Using TLS/SSL (Using ssl Options).

キーファイル認証を使用するが 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 証明書のみを使用するようにすべてのノードを更新します。

    重要

    This TLS/SSL connection requirement applies to all connections; that is, with the clients as well as with the members of the cluster. That is, clients must specify TLS/SSL connections and presents its certificate key file when connecting to the cluster. See Connect to a TLS-Enabled Replica Set for more information on connecting with TLS/SSL. See also Validate Only if a Client Presents a Certificate.

    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設定と同じ機能を提供します。

The procedures in this section use the ssl options. For procedures using the tls options, see Upgrade Procedures (Using tls Options).

注意

The procedure uses the ssl options. For procedures using the tls options, see Clusters Currently Using TLS/SSL (Using ssl Options).

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" } )

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

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

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

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

注意

The procedure uses the ssl options. For procedures using the tls options, see Update (Using tls Options) Clusters Using Keyfile but Not TLS/SSL.

キーファイル認証を使用するが 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 に設定すると、各ノードは、前のステップで --sslClusterFile オプションで指定された X.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 のオプションと値を使用してノードを再起動することもできます。