문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ /

클라이언트를 위한 TLS/SSL 구성

이 페이지의 내용

  • MongoDB Shell
  • MongoDB Atlas, MongoDB Cloud Manager 및 MongoDB Ops Manager
  • MongoDB 드라이버
  • MongoDB 도구.

클라이언트가 mongod 또는 TLS/SSL 연결이 필요한 mongos 인스턴스에 연결하려면 TLS/SSL을 지원해야 합니다.

참고

  • Linux 64비트 레거시 x64 바이너리인 MongoDB에는 TLS/SSL 지원이 포함되어 있지 않습니다.

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

중요

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

mongosh 는 다음을 포함한 다양한 TLS/SSL 설정을 제공합니다.

TLS 옵션
참고 사항
TLS/SSL 연결을 활성화합니다.

mongod 또는 mongos 인스턴스에 제시할 mongosh의 인증서 및 키를 가진 .pem 파일을 지정합니다. 이 옵션은 --tlsCertificateSelector와 상호 배타적입니다.

mongod/mongos는 제시된 x.509 인증서가 mongod/mongos 호스트 시스템 시간으로부터 30일 이내에 만료되는 경우 연결 시 경고를 기록합니다. 자세한 내용은 경고를 트리거하는 만료 임박 x.509 인증서를 참조하세요.

mongosh의 인증서 키 파일이 암호화된 경우.
mongod 또는 mongos 인스턴스에서 제시한 인증서를 검증하기 위한 인증 기관(CA) .pem 파일을 지정합니다.

Windows 또는 macOS에서 실행하는 경우 시스템 인증서 저장소의 인증서를 사용하세요.

이 옵션은 --tlsCertificateKeyFile과 상호 배타적입니다.

mongod/mongos는 제시된 x.509 인증서가 mongod/mongos 호스트 시스템 시간으로부터 30일 이내에 만료되는 경우 연결 시 경고를 기록합니다. 자세한 내용은 경고를 트리거하는 만료 임박 x.509 인증서를 참조하세요.

mongoshtls 옵션의 전체 목록은 TLS 옵션을 참조하세요.

TLS/SSL 연결의 경우, mongoshmongod 또는 mongos 인스턴스에서 제시하는 인증서의 유효성을 검사합니다.

  • mongosh 는 인증서가 지정된 인증 기관(--tlsCAFile 에서 발급한 것인지 확인합니다. 지정된 CA에서 발급한 인증서가 아닌 경우 mongosh 연결에 실패합니다.

  • mongosh는 호스트 이름(--host 옵션 또는 연결 문자열에서 지정)이 mongod 또는 mongos에서 제시하는 인증서의 SAN (SAN 이 없는 경우 CN)과 일치하는지 확인합니다. SAN이 있으면 mongoshCN과 일치하지 않습니다. 호스트 이름이 SAN (또는 CN)과 일치하지 않으면 mongosh의 연결은 실패합니다.

    MongoDB 4.2부터는 SAN 비교를 수행할 때 MongoDB에서 DNS 이름 또는 IP 주소 비교가 지원됩니다. 이전 버전에서는 MongoDB에서 DNS 이름 비교만 지원됐습니다.

    mongosh를 TLS/SSL이 필요한 mongod 또는 mongos에 연결하려면 --host 옵션을 지정하거나 연결 문자열을 사용하여 호스트 이름을 지정합니다. 다른 모든 TLS/SSL 옵션은 명령줄 옵션을 사용하여 지정해야 합니다.

암호화된 통신이 필요한 mongod 또는 mongos 인스턴스에 연결하려면, 다음을 사용하여 mongosh를 시작합니다.

예를 들어, hostname.example.com에서 실행 중인 mongod 인스턴스에 다음 옵션이 있다고 가정해 보겠습니다.

mongod --tlsMode requireTLS --tlsCertificateKeyFile <pem>

인스턴스에 연결하려면 다음 옵션을 사용하여 mongosh를 시작합니다.

mongosh --tls --host hostname.example.com --tlsCAFile /etc/ssl/caToValidateServerCertificates.pem

mongoshmongod 인스턴스에서 제시하는 인증서를 지정된 호스트 이름 및 CA 파일과 비교하여 검증합니다.

CA 서명 클라이언트 인증서가 필요한 mongod 또는 mongos에 연결하려면, 다음을 사용하여 mongosh를 시작합니다.

예를 들어, hostname.example.com에서 실행 중인 mongod 인스턴스에 다음 옵션이 있다고 가정해 보겠습니다.

mongod --tlsMode requireTLS --tlsCertificateKeyFile /etc/ssl/mongodb.pem --tlsCAFile /etc/ssl/caToValidateClientCertificates.pem

인스턴스에 연결하려면 다음 옵션을 사용하여 mongosh를 시작합니다.

mongosh --tls --host hostname.example.com --tlsCertificateKeyFile /etc/ssl/client.pem --tlsCAFile /etc/ssl/caToValidateServerCertificates.pem

시스템 인증서 저장소에서 클라이언트 인증서를 지정하려면 --tlsCertificateKeyFile 대신 --tlsCertificateSelector 옵션을 사용합니다.

CA 파일이 시스템 인증서 저장소에도 있는 경우 --tlsCAFile 옵션을 생략할 수 있습니다.

예를 들어, CN(일반 이름)이 myclient.example.net인 인증서 그리고 함께 제공되는 CA 파일이 모두 macOS 시스템 인증서 저장소에 있는 경우 다음과 같이 연결할 수 있습니다.

mongosh --tls --host hostname.example.com --tlsCertificateSelector subject="myclient.example.net"

이 옵션들은 mongosh에서 사용할 수 있지만, 대신 tls 대안을 사용해야 합니다.

경고

--tlsAllowInvalidCertificates 옵션은 사용할 수 있는 경우에도 가급적 사용하지 않는 것이 좋습니다. --tlsAllowInvalidCertificates 를 사용해야만 하는 경우, 침입이 불가능한 시스템에서만 옵션을 사용하세요.

mongosh--tlsAllowInvalidCertificates 옵션과 함께 실행되는 경우 mongosh 는 서버 인증서의 유효성 검사를 시도하지 않습니다. 이로 인해 만료된 mongodmongos 인증서는 물론 유효한 mongod 또는 mongos 인스턴스로 가장하는 외부 프로세스에 대한 취약성이 발생합니다. TLS/SSL 인증서에서 호스트 이름 유효성 검사만 비활성화해야 하는 경우 --tlsAllowInvalidHostnames 를 참조하세요.

MongoDB Atlas는 데이터베이스에 대한 연결을 암호화하기 위해 TLS/SSL을 사용합니다.

MongoDB Cloud Manager 및 Ops Manager 모니터링 에이전트는 암호화된 통신을 사용하여 통계를 수집합니다. 에이전트가 이미 MongoDB Cloud Manager/Ops Manager 서버와의 통신을 암호화하고 있으므로, 호스트별로 MongoDB Cloud Manager/Ops Manager에서 TLS/SSL 지원을 사용하도록 설정하기만 하면 됩니다.

자세한 내용은 다음을 참조하세요.

MongoDB 드라이버는 암호화된 통신을 지원합니다. 자세한 내용은 다음을 참조하세요.

다양한 MongoDB 유틸리티 프로그램이 암호화된 통신을 지원합니다. 이러한 도구에는 다음이 포함됩니다.

이러한 도구로 암호화된 통신을 사용하려면 mongosh와 동일한 tls 옵션을 사용하세요. MongoDB Shell을 참조하세요.

다음도 참조하세요.

돌아가기

mongod & mongos 구성

다음

클러스터 업그레이드