문서 메뉴

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

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

이 페이지의 내용

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

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

참고

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

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

중요

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

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

TLS 옵션(4.2의 새로운 기능)
참고 사항
--tls
TLS/SSL 연결을 활성화합니다.

또는 인스턴스에 제공할 mongoshmongod 인증서 및 mongos 키가 포함된 .pem 파일을 지정합니다. 이 옵션은 와 상호 배타적입니다.--tlsCertificateSelector

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

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

Windows 또는 macOS에서 실행하는 경우 시스템 인증서 저장소의 인증서를 사용하세요(버전 4.0의 새로운 기능).

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

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

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

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

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

  • 은(는)mongosh 호스트 이름( 옵션 또는 연결 문자열에 --host 지정됨)이 SAN SAN CN mongod 또는 .mongosSAN mongosh CN SAN CNmongosh 있는 경우 은 과 일치하지 않습니다. 호스트 이름이 (또는 )와 일치하지 않으면 연결에 실패합니다.

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

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

암호화된 통신mongos 필요한 또는 mongod 인스턴스에 연결하려면 다음으로 mongosh 를 시작합니다.

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

mongod --tlsMode requireTLS --tlsCertificateKeyFile <pem>

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

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

mongosh 은(는) mongod 인스턴스에서 제공한 인증서를 지정된 호스트 이름 및 CA 파일과 비교하여 확인합니다.

CA 서명 클라이언트 인증서 가 mongos 필요한 mongod 또는 에 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

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

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

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

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

이러한 옵션은 MongoDB 4 부터 더 이상 사용되지 않습니다.2:

  • --ssl

  • --sslCAFile

  • --sslPEMKeyFile

  • --sslCertificateSelector

이 옵션들은 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을 참조하세요.

다음도 참조하세요.

← TLS/SSL에 mongodmongos 를 구성하세요.