TLS/SSL을 사용하도록 클러스터 업그레이드하기
MongoDB 서버는 동일한 TCP 포트에서 TLS/SSL 암호화 연결과 암호화되지 않은 연결 모두에 대한 수신을 지원합니다. 이를 통해 TLS/SSL 암호화 연결을 사용하도록 MongoDB 클러스터를 업그레이드할 수 있습니다.
참고
MongoDB는 TLS 1.1 이상이 사용 가능한 시스템에서 TLS 1.0 암호화를 지원하지 않습니다.
절차( 설정 tls
사용)
중요
TLS/SSL, PKI(공개 키 인프라) 인증서 및 인증 기관에 대한 전체 설명은 이 문서의 범위를 벗어납니다. 이 페이지는 유효한 인증서에 액세스할 수 있을 뿐만 아니라 TLS/SSL에 대한 사전 지식이 있다고 가정합니다.
TLS/SSL 암호화를 사용하지 않는 MongoDB 클러스터에서 오직 TLS/SSL 암호화만 사용하는 클러스터로 업그레이드하려면 다음 롤링 업그레이드 프로세스를 사용하세요.
참고
이 섹션의 절차에서는 tls
설정/옵션을 사용합니다. ssl
별칭을 사용하는 절차에 대해서는 절차( ssl
설정 사용)를 참조하세요.
MongoDB가 항상 TLS 1.0 이상을 지원해 왔기에 tls
설정/옵션은 ssl
옵션과 동일한 기능을 제공합니다.
클러스터 의 각 노드 에 대해 명령줄 옵션
--tlsMode
또는 구성 파일 옵션net.tls.mode
을allowTLS
로 설정하다 하여 노드 를 시작합니다.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> 클러스터의 모든 노드를 이 설정으로 업그레이드합니다.
모든 클라이언트가 TLS/SSL을 사용하도록 전환합니다. 클라이언트의 TLS/SSL 구성을 참조하세요.
클러스터의 각 노드에 대해
setParameter
명령을 사용하여tlsMode
를preferTLS
로 업데이트합니다. [1]과preferTLS
를net.tls.mode
로 사용하는 노드는 TLS/SSL 및 비 TLS/비 SSL 수신 연결을 모두 허용하며, 다른 서버에 대한 연결은 TLS/SSL을 사용합니다. 예시:db.adminCommand( { setParameter: 1, tlsMode: "preferTLS" } ) 클러스터의 모든 노드를 이 설정으로 업그레이드합니다.
이 시점에서 모든 연결은 TLS/SSL을 사용해야 합니다.
클러스터의 각 노드에 대해
setParameter
명령을 사용하여tlsMode
를requireTLS
로 업데이트합니다. [1]과requireTLS
를net.tls.mode
로 사용하는 노드는 모든 비 TLS/비 SSL 연결을 거부합니다. 예시:db.adminCommand( { setParameter: 1, tlsMode: "requireTLS" } ) 모든 노드를 업그레이드한 후 적절한 TLS/SSL 설정으로 구성 파일을 편집하여 이후에 다시 시작할 때 클러스터에서 TLS/SSL을 사용하도록 합니다.
절차( 설정 ssl
사용)
중요
TLS/SSL, PKI(공개 키 인프라) 인증서 및 인증 기관에 대한 전체 설명은 이 문서의 범위를 벗어납니다. 이 페이지는 유효한 인증서에 액세스할 수 있을 뿐만 아니라 TLS/SSL에 대한 사전 지식이 있다고 가정합니다.
TLS/SSL 암호화를 사용하지 않는 MongoDB 클러스터에서 오직 TLS/SSL 암호화만 사용하는 클러스터로 업그레이드하려면 다음 롤링 업그레이드 프로세스를 사용하세요.
참고
이 섹션의 절차에서는 ssl
설정/옵션을 사용합니다. tls
별칭을 사용하는 절차에 대한 자세한 내용은 절차(tls
설정 사용)를 참조하세요.
MongoDB가 항상 TLS 1.0 이상을 지원해 왔기에 tls
설정/옵션은 ssl
옵션과 동일한 기능을 제공합니다.
클러스터 의 각 노드 에 대해 명령줄 옵션
--sslMode
또는 구성 파일 옵션net.ssl.mode
을allowSSL
로 설정하다 하여 노드 를 시작합니다.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> 클러스터의 모든 노드를 이 설정으로 업그레이드합니다.
모든 클라이언트가 TLS/SSL을 사용하도록 전환합니다. 클라이언트의 TLS/SSL 구성을 참조하세요.
클러스터의 각 노드에 대해
setParameter
명령을 사용하여sslMode
를preferSSL
로 업데이트합니다. [1]과preferSSL
를net.ssl.mode
로 사용하는 노드는 TLS/SSL 및 비 TLS/비 SSL 수신 연결을 모두 허용하며, 다른 서버에 대한 연결은 TLS/SSL을 사용합니다. 예를 들면 다음과 같습니다.db.adminCommand( { setParameter: 1, sslMode: "preferSSL" } ) 클러스터의 모든 노드를 이 설정으로 업그레이드합니다.
이 시점에서 모든 연결은 TLS/SSL을 사용해야 합니다.
클러스터 의 각 노드 에 대해
setParameter
명령을 사용하여sslMode
을requireSSL
로 업데이트 합니다. [1]requireSSL
을net.ssl.mode
로 사용하면 노드 는 모든 비 TLS/비 SSL 연결을 거부합니다. 예를 예시 다음과 같습니다.db.adminCommand( { setParameter: 1, sslMode: "requireSSL" } ) 모든 노드를 업그레이드한 후 적절한 TLS/SSL 설정으로 구성 파일을 편집하여 이후에 다시 시작할 때 클러스터에서 TLS/SSL을 사용하도록 합니다.
[1] | (1, 2, 3, 4) setParameter 명령을 사용하는 대신 적절한 TLS/SSL 옵션 및 값을 사용하여 노드를 다시 시작할 수도 있습니다. |
[2] | (1, 2) Windows 및 macOS용 시스템 SSL 인증서 저장소를 사용할 수 있습니다. 시스템 SSL 인증서 저장 를 사용하려면 다음을 사용합니다.
|