Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ /

TLS/SSL을 사용하도록 클러스터 업그레이드하기

MongoDB 서버는 동일한 TCP 포트에서 TLS/SSL 암호화 연결과 암호화되지 않은 연결 모두에 대한 수신을 지원합니다. 이를 통해 TLS/SSL 암호화 연결을 사용하도록 MongoDB 클러스터를 업그레이드할 수 있습니다.

참고

MongoDB는 TLS 1.1 이상이 사용 가능한 시스템에서 TLS 1.0 암호화를 지원하지 않습니다.

중요

TLS/SSL, PKI(공개 키 인프라) 인증서 및 인증 기관에 대한 전체 설명은 이 문서의 범위를 벗어납니다. 이 페이지는 유효한 인증서에 액세스할 수 있을 뿐만 아니라 TLS/SSL에 대한 사전 지식이 있다고 가정합니다.

TLS/SSL 암호화를 사용하지 않는 MongoDB 클러스터에서 오직 TLS/SSL 암호화만 사용하는 클러스터로 업그레이드하려면 다음 롤링 업그레이드 프로세스를 사용하세요.

참고

이 섹션의 절차에서는 tls 설정/옵션을 사용합니다. ssl 별칭을 사용하는 절차에 대해서는 절차( ssl 설정 사용)를 참조하세요.

MongoDB가 항상 TLS 1.0 이상을 지원해 왔기에 tls 설정/옵션은 ssl 옵션과 동일한 기능을 제공합니다.

  1. 클러스터 의 각 노드 에 대해 명령줄 옵션 --tlsMode 또는 구성 파일 옵션 net.tls.modeallowTLS 로 설정하다 하여 노드 를 시작합니다. allowTLS 설정을 사용하면 노드 가 TLS/SSL 및 비 TLS/비 SSL 수신 연결을 모두 수락할 수 있습니다. 다른 서버와의 연결은 TLS/SSL을 사용하지 않습니다. 특정 구성에 필요한 기타 옵션뿐만 아니라 다른 TLS/SSL 옵션 [2] 을 포함합니다.

    참고

    mongod mongos { 2} 및 는 기본적으로 로컬 호스트에 바인딩됩니다. 배포 구성원이 다른 호스트에서 실행되거나 원격 클라이언트를 배포에 연결하려는 경우 --bind_ip 또는 net.bindIp 를 지정해야 합니다.

    예를 들면 다음과 같습니다.

    mongod --replSet <name> --tlsMode allowTLS --tlsCertificateKeyFile <TLS/SSL certificate and key file> --tlsCAFile <path to root CA PEM file> <additional options>

    구성 파일 에 이러한 옵션을 지정하려면 파일 에 다음 설정을 포함합니다.

    net:
    tls:
    mode: allowTLS
    PEMKeyFile: <path to TLS/SSL certificate and key PEM file>
    CAFile: <path to root CA PEM file>

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

  2. 모든 클라이언트가 TLS/SSL을 사용하도록 전환합니다. 클라이언트의 TLS/SSL 구성을 참조하세요.

  3. 클러스터의 각 노드에 대해 setParameter 명령을 사용하여 tlsModepreferTLS로 업데이트합니다. [1]preferTLSnet.tls.mode로 사용하는 노드는 TLS/SSL 및 비 TLS/비 SSL 수신 연결을 모두 허용하며, 다른 서버에 대한 연결은 TLS/SSL을 사용합니다. 예시:

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

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

    이 시점에서 모든 연결은 TLS/SSL을 사용해야 합니다.

  4. 클러스터의 각 노드에 대해 setParameter 명령을 사용하여 tlsModerequireTLS로 업데이트합니다. [1]requireTLSnet.tls.mode로 사용하는 노드는 모든 비 TLS/비 SSL 연결을 거부합니다. 예시:

    db.adminCommand( { setParameter: 1, tlsMode: "requireTLS" } )
  5. 모든 노드를 업그레이드한 후 적절한 TLS/SSL 설정으로 구성 파일을 편집하여 이후에 다시 시작할 때 클러스터에서 TLS/SSL을 사용하도록 합니다.

중요

TLS/SSL, PKI(공개 키 인프라) 인증서 및 인증 기관에 대한 전체 설명은 이 문서의 범위를 벗어납니다. 이 페이지는 유효한 인증서에 액세스할 수 있을 뿐만 아니라 TLS/SSL에 대한 사전 지식이 있다고 가정합니다.

TLS/SSL 암호화를 사용하지 않는 MongoDB 클러스터에서 오직 TLS/SSL 암호화만 사용하는 클러스터로 업그레이드하려면 다음 롤링 업그레이드 프로세스를 사용하세요.

참고

이 섹션의 절차에서는 ssl 설정/옵션을 사용합니다. tls 별칭을 사용하는 절차에 대한 자세한 내용은 절차(tls 설정 사용)를 참조하세요.

MongoDB가 항상 TLS 1.0 이상을 지원해 왔기에 tls 설정/옵션은 ssl 옵션과 동일한 기능을 제공합니다.

  1. 클러스터 의 각 노드 에 대해 명령줄 옵션 --sslMode 또는 구성 파일 옵션 net.ssl.modeallowSSL 로 설정하다 하여 노드 를 시작합니다. allowSSL 설정을 사용하면 노드 가 TLS/SSL 및 비 TLS/비 SSL 수신 연결을 모두 수락할 수 있습니다. 다른 서버와의 연결은 TLS/SSL을 사용하지 않습니다. 특정 구성에 필요한 기타 옵션뿐만 아니라 다른 TLS/SSL 옵션 [2] 을 포함합니다.

    참고

    mongod mongos { 2} 및 는 기본적으로 로컬 호스트에 바인딩됩니다. 배포 구성원이 다른 호스트에서 실행되거나 원격 클라이언트를 배포에 연결하려는 경우 --bind_ip 또는 net.bindIp 를 지정해야 합니다.

    예를 들면 다음과 같습니다.

    mongod --replSet <name> --sslMode allowSSL --sslPEMKeyFile <path to TLS/SSL Certificate and key PEM file> --sslCAFile <path to root CA PEM file> <additional options>

    구성 파일 에 이러한 옵션을 지정하려면 파일 에 다음 설정을 포함합니다.

    net:
    ssl:
    mode: <allowSSL>
    PEMKeyFile: <path to TLS/SSL certificate and key PEM file>
    CAFile: <path to root CA PEM file>

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

  2. 모든 클라이언트가 TLS/SSL을 사용하도록 전환합니다. 클라이언트의 TLS/SSL 구성을 참조하세요.

  3. 클러스터의 각 노드에 대해 setParameter 명령을 사용하여 sslModepreferSSL로 업데이트합니다. [1]preferSSLnet.ssl.mode로 사용하는 노드는 TLS/SSL 및 비 TLS/비 SSL 수신 연결을 모두 허용하며, 다른 서버에 대한 연결은 TLS/SSL을 사용합니다. 예를 들면 다음과 같습니다.

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

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

    이 시점에서 모든 연결은 TLS/SSL을 사용해야 합니다.

  4. 클러스터 의 각 노드 에 대해 setParameter 명령을 사용하여 sslModerequireSSL 로 업데이트 합니다. [1] requireSSLnet.ssl.mode 로 사용하면 노드 는 모든 비 TLS/비 SSL 연결을 거부합니다. 예를 예시 다음과 같습니다.

    db.adminCommand( { setParameter: 1, sslMode: "requireSSL" } )
  5. 모든 노드를 업그레이드한 후 적절한 TLS/SSL 설정으로 구성 파일을 편집하여 이후에 다시 시작할 때 클러스터에서 TLS/SSL을 사용하도록 합니다.

[1](1, 2, 3, 4) setParameter 명령을 사용하는 대신 적절한 TLS/SSL 옵션 및 값을 사용하여 노드를 다시 시작할 수도 있습니다.
[2](1, 2) Windows 및 macOS용 시스템 SSL 인증서 저장소를 사용할 수 있습니다. 시스템 SSL 인증서 저장 를 사용하려면 다음을 사용합니다.
  • net.tls.certificateKeyFile(또는 ``--certificateKeyFile``명령줄 옵션) 대신 net.tls.certificateSelector(또는 --tlsCertificateSelector 명령줄 옵션).
  • net.ssl.certificateSelector (또는 명령줄 옵션 --sslCertificateSelector) 대신 net.ssl.PEMKeyFile (또는 ``--sslPEMKeyFile`` 명령줄 옵션).
시스템 SSL 인증서 저장소를 사용할 때 온라인 인증서 상태 프로토콜(OCSP)을 사용해 인증서의 해지 상태를 확인할 수 있습니다.

돌아가기

클라이언트 구성