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 및 키 파일 인증을 사용하는 cluster의 경우 x.509 cluster 인증으로 업그레이드하려면 다음 롤링 업그레이드 프로세스를 사용하세요.

  1. cluster의 각 노드에 대해 구성 파일 에 다음 설정을 추가하고 다시 시작합니다.

    • security.clusterAuthMode
      sendKeyFile 로 설정합니다. 이 설정 값을 사용하면 각 노드는 계속해서 키 파일을 전송하여 자신을 구성원으로 인증합니다. 그러나 각 노드는 다른 노드로부터 키 파일 또는 x.509 인증서를 수신하여 해당 노드를 인증할 수 있습니다.
    • net.tls.clusterFile
      멤버십 인증을 위해 노드 인증서 키 파일의 적절한 경로로 설정합니다. mongod / mongos 는 cluster의 다른 구성원에게 이 파일을 표시하여 자신을 구성원으로 식별합니다.

    특정 구성에 적합한 다른 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 설정을 포함하도록 cluster의 모든 노드를 업데이트합니다.

  2. 각 노드에 연결하고 setParameter 명령을 사용하여 clusterAuthModesendX509 로 업데이트합니다. [1]

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

    sendX509 을 사용하면 각 노드는 net.tls.clusterFile 를 전송하여 자신을 구성원으로 인증합니다. 그러나 각 노드는 다른 노드로부터 키 파일 또는 x.509 인증서를 수신하여 해당 노드를 인증할 수 있습니다.

    계속하기 전에 cluster의 모든 노드를 이 설정으로 업그레이드하세요.

  3. 선택 사항이지만 권장됩니다. 마지막으로 cluster의 각 노드에 대해 노드에 연결하고 setParameter 명령을 사용하여 인증에 x.509 인증서만 사용하도록 clusterAuthModex509 로 업데이트합니다. [1]

    db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } )
  4. 모든 노드를 업그레이드한 후 적절한 x.509 설정으로 구성 파일 을 편집하여 나중에 다시 시작할 때 cluster가 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

다음도 참조하세요.

구성 파일 대신 명령줄 옵션을 사용하여 mongodmongos 구성할 수도 있습니다.

참고

이 절차에서는 tls 옵션을 사용합니다. ssl 설정/옵션을 사용하는 절차에 대해서는 현재 TLS/SSL을 사용하지 않는 클러스터( ssl 옵션 사용)를 참조하세요.

TLS/SSL이 아닌 키 파일 인증을 사용하는 cluster의 경우, x.509 멤버십 인증 및 TLS/SSL 연결로 업그레이드하세요:

  1. cluster의 각 노드에 대해 구성 파일 에 다음 설정을 추가하고 다시 시작합니다.

    • 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 는 cluster의 다른 구성원에게 이 파일을 표시하여 자신을 구성원으로 식별합니다.
    • 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.mode, net.tls.certificateKeyFile, net.tls.clusterFilesecurity.clusterAuthMode 를 포함하도록 cluster의 모든 노드를 업그레이드합니다.

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

    계속하기 전에 cluster의 모든 노드를 이 설정으로 업그레이드하세요.

  3. 모든 노드를 업그레이드한 후 적절한 TLS/SSL 및 x.509 설정으로 구성 파일 을 편집하여 나중에 다시 시작할 때 cluster가 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

    참고

    이때,

    • cluster의 노드가 TLS/SSL 연결을 사용합니다. 그러나 노드는 클라이언트 애플리케이션에서 비TLS/SSL 연결을 허용할 수 있습니다.

    • 노드는 멤버십 인증을 위해 x.509 인증서를 전송하지만, 다른 노드의 멤버십을 확인하기 위해 다른 노드의 x.509 인증서 또는 키 파일을 수락할 수 있습니다.

    클라이언트 애플리케이션에서 TLS/SSL 연결을 시행하고 멤버십 인증에 x.509만 허용하려면 다음 단계를 참조하세요.

  4. 선택 사항이지만 권장됩니다. 멤버십 인증에 TLS/SSL 연결만 사용하고 x.509 인증서만 사용하도록 모든 노드를 업데이트합니다.

    중요

    이 TLS/SSL 연결 요구 사항은 모든 연결에 적용됩니다. 즉, 클라이언트뿐만 아니라 cluster의 멤버와도 함께 사용할 수 있습니다. 즉, 클라이언트는 TLS/SSL 연결을 지정하고 cluster에 연결할 때 인증서 키 파일을 제공해야 합니다. 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

다음도 참조하세요.

구성 파일 대신 명령줄 옵션을 사용하여 mongodmongos 구성할 수도 있습니다.

참고

MongoDB는 net.ssl 설정(및 --ssl 명령줄 옵션)에 대응하는 net.tls 설정(및 --tls 명령줄 옵션)을 제공합니다. MongoDB는 항상 TLS 1.0 이상을 지원해 왔기 때문에 새로운 tls 설정은 ssl 설정과 동일한 기능을 제공합니다.

이 섹션의 절차에서는 ssl 옵션을 사용합니다. tls 옵션을 사용하는 절차에 대해서는 업그레이드 절차( tls 옵션 사용)를 참조하세요.

참고

이 절차에서는 ssl 옵션을 사용합니다. tls 옵션을 사용하는 절차에 대해서는 현재 TLS/SSL을 사용하는 클러스터( ssl 옵션 사용)를 참조하세요.

TLS/SSL 및 키 파일 인증을 사용하는 cluster의 경우 x.509 cluster 인증으로 업그레이드하려면 다음 롤링 업그레이드 프로세스를 사용하세요.

  1. 클러스터의 각 노드에 대해 --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 인증서를 수락하여 해당 노드를 인증할 수 있습니다. cluster의 모든 노드를 이 설정으로 업그레이드합니다.

  2. 그런 다음 cluster의 각 노드에 대해 노드에 연결하고 setParameter 명령을 사용하여 clusterAuthModesendX509 로 업데이트합니다. [1] 예를 들면 다음과 같습니다.

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

    이 설정을 사용하면 각 노드는 해당 x를 사용합니다. 이전 단계에서 --sslClusterFile 옵션으로 지정된 509 인증서를 사용하여 자신을 구성원으로 인증합니다. 그러나 각 노드는 계속해서 키 파일 또는 x 중 하나를 허용합니다.509 다른 멤버의 인증서를 사용하여 해당 멤버를 인증합니다. 클러스터의 모든 노드를 이 설정으로 업그레이드합니다.

  3. 선택 사항이지만 권장됩니다. 마지막으로 cluster의 각 노드에 대해 노드에 연결하고 setParameter 명령을 사용하여 인증에 x.509 인증서만 사용하도록 clusterAuthModex509 로 업데이트합니다. [1] 예:

    db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } )
  4. 모든 노드를 업그레이드한 후 적절한 x.509 설정으로 구성 파일 을 편집하여 나중에 다시 시작할 때 cluster가 x.509 인증을 사용하도록 합니다.

다양한 모드와 해당 설명은 --clusterAuthMode 를 참조하세요.

참고

이 절차에서는 ssl 옵션을 사용합니다. tls 옵션을 사용하는 절차에 대해서는 TLS/SSL이 아닌 키 파일을 사용하여 클러스터 업데이트( tls 옵션 사용)를 참조하세요.

TLS/SSL이 아닌 키 파일 인증을 사용하는 cluster의 경우 x.509 인증으로 업그레이드하려면 다음 롤링 업그레이드 프로세스를 사용하세요.

  1. 클러스터의 각 노드에 대해 --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 인증서를 수락하여 해당 노드를 인증할 수 있습니다.

    클러스터의 모든 노드를 이 설정으로 업그레이드합니다.

  2. 그런 다음 cluster의 각 노드에 대해 노드에 연결하고 setParameter 명령을 사용하여 sslModepreferSSL 로, clusterAuthModesendX509 로 업데이트합니다. [1] 예:

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

    sslMode 을(를) preferSSL(으)로 설정하면 노드는 TLS/SSL과 비TLS/비SSL 수신 연결을 모두 허용하고, 발신 연결은 TLS/SSL을 사용합니다.

    clusterAuthModesendX509 로 설정하면 각 노드는 해당 x를 사용합니다. 이전 단계에서 --sslClusterFile 옵션으로 지정된 509 인증서를 사용하여 자신을 구성원으로 인증합니다. 그러나 각 노드는 계속해서 키 파일 또는 x 중 하나를 허용합니다.509 다른 멤버의 인증서를 사용하여 해당 멤버를 인증합니다.

    클러스터의 모든 노드를 이 설정으로 업그레이드합니다.

  3. 선택 사항이지만 권장됩니다. 마지막으로 cluster의 각 노드에 대해 노드에 연결하고 setParameter 명령을 사용하여 sslModerequireSSL 로, clusterAuthModex509 로 업데이트합니다. [1] 예:

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

    sslModerequireSSL 로 설정하면 노드는 TLS/SSL 연결만 사용합니다.

    clusterAuthModex509 로 설정하면 노드는 인증에 x.509 인증서만 사용합니다.

  4. 모든 노드를 업그레이드한 후 적절한 TLS/SSL 및 x.509 설정으로 구성 파일 을 편집하여 나중에 다시 시작할 때 cluster가 x.509 인증을 사용하도록 합니다.

다양한 모드와 해당 설명은 --clusterAuthMode 를 참조하세요.

[1](1, 2, 3, 4, 5, 6, 7) setParameter 명령을 사용하는 대신 적절한 TLS/SSL 및 x509 옵션과 값을 사용하여 노드를 다시 시작할 수도 있습니다.

돌아가기

x.509 사용