문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

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

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

참고

MongoDB가 TLS 1 지원을 비활성화합니다. TLS가 1 인 시스템에서 0 암호화.1+를 사용할 수 있습니다.

중요

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

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

참고

이 섹션의 절차에서는 tls 설정/옵션( MongoDB 4.2 에서 사용 가능)을 사용합니다. 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 를 지정해야 합니다.

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

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

  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 별칭을 사용하는 절차( MongoDB 4.2 에서 사용 가능)에 대해서는 절차( 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 를 지정해야 합니다.

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

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

  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) MongoDB 4.0부터는 Windows 및 macOS용 시스템 SSL 인증서 저장소를 사용할 수 있습니다. 시스템 SSL 인증서 저장소를 사용하려면 다음을 사용합니다:시스템 SSL 인증서 저장소를 사용할 때 온라인 인증서 상태 프로토콜(OCSP)을 사용해 인증서의 해지 상태를 확인할 수 있습니다.
← 클라이언트를 위한 TLS/SSL 구성