AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

자체 관리형 배포서버에서 TLS 구성

이 튜토리얼에서는 자체 관리 복제본 세트 에서 TLS를 구성하는 방법을 보여줍니다. 노드 간 X.509 인증 활성화 데 필요한 클러스터 내 mTLS를 사용할지 여부에 따라 접근 방식을 선택합니다.

중요

These steps apply to self-managed MongoDB deployments. MongoDB Atlas clusters use TLS by default. If you use Cloud Manager or Ops Manager, configure TLS through your deployment management tool.

시작하기 전에 다음 사항이 있는지 확인하세요.

  • 각 노드 에 localhost 또는 mongo0.example.com 등의 호스트 이름이 있는 자체 관리형 복제본 세트 . 현재 복제본 세트 의 어떤 노드 에도 TLS가 구성되어 있지 않습니다.

  • 서버 인증서 확득 튜토리얼에 따라 확득한 각 노드의 TLS 서버 인증서(예: mongo0.pem).

  • ca.pem 등 서버 인증서에 서명할 CA 인증서입니다.

  • 각 노드에 있는 mongod 설정 파일에 대한 액세스입니다.

서버 노드 간에 클러스터 내 mTLS 또는 X.509 인증이 필요하지 않은 경우 다음 절차를 따릅니다.

1

각 노드는 키 파일의 내용을 사용하여 배포의 다른 노드를 인증합니다. 다음 명령을 사용하여 키 파일을 만듭니다.

openssl rand -base64 756 > /etc/ssl/mongodb/keyfile
chmod 400 /etc/ssl/mongodb/keyfile

배포서버의 각 노드에 키 파일을 복사합니다. mongod 프로세스만 키 파일을 읽을 수 있도록 키 파일의 권한을 제한합니다.

2

각 노드에서 mongod 설정 파일을 찾아 열어야 합니다. 파일이 없는 경우 파일을 만듭니다. 다음 TLS 옵션을 추가합니다. 인증서 파일에 대한 절대 경로를 사용합니다.

예를 들어 프라이머리 노드의 설정 파일은 다음과 같습니다.

net:
tls:
mode: allowTLS
certificateKeyFile: /etc/ssl/mongodb/mongo0.pem
CAFile: /etc/ssl/mongodb/ca.pem
allowConnectionsWithoutCertificates: true
security:
clusterAuthMode: keyFile
keyFile: /etc/ssl/mongodb/keyfile
setParameter:
tlsWithholdClientCertificate: true
  • modeallowTLS 로 설정하다 TLS 연결을 허용하지만 필요하지 않으므로 노드가 복제 중단하지 않고 롤링 재시작 완료할 수 있습니다.

  • certificateKeyFile 는 노드의 인증서를 지정합니다. 구성하는 특정 노드의 인증서 키 파일로 파일 이름을 대체합니다. CAFile 는 노드의 인증서에 서명한 CA 인증서를 지정합니다.

  • allowConnectionsWithoutCertificates 클라이언트가 TLS 인증서를 제공하지 않고도 연결할 수 있습니다.

  • clusterAuthModekeyFile 으로 설정하면 노드가 키 파일을 사용하여 인증할 수 있습니다. keyFile 에서는 노드가 서로 인증하는 데 사용하는 키 파일을 지정합니다.

  • tlsWithholdClientCertificate 는 클러스터의 다른 노드에 아웃바운드 연결을 만들 때 노드 서버 인증서를 제시하지 못하도록 합니다. 이는 특히 인증서에 clientAuth EKU가 포함되지 않은 경우 노드가 클라이언트 인증 에 서버 인증 인증서를 사용하는 것을 방지하기 때문에 필요합니다.

3

새 TLS 구성을 적용하려면 mongod 프로세스를 다시 시작합니다. 중단 없이 구성을 적용하려면 노드를 롤링 방식으로 다시 시작합니다.

배포서버의 각 호스트에서 세컨더리 노드를 시작하여 프라이머리 노드로 마무리하는 다음을 실행합니다.

sudo systemctl restart mongod

롤링 재시작이 성공적으로 완료되었는지 확인하려면 각 호스팅하는 곳에서 다음 명령을 실행합니다.

sudo systemctl status mongod
4

TLS가 활성화된 상태로 모든 노드가 성공적으로 다시 시작되면 각 노드의 설정 파일을 업데이트합니다. net.tls.modeallowTLS 에서 requireTLS (으)로 변경하여 모든 클라이언트와 노드에 대한 암호화된 연결을 시행합니다.

net:
tls:
mode: requireTLS
5

새 TLS 구성을 적용하려면 mongod 프로세스를 다시 시작합니다. 중단 없이 구성을 적용하려면 노드를 롤링 방식으로 다시 시작합니다.

배포서버의 각 호스트에서 세컨더리 노드를 시작하여 프라이머리 노드로 마무리하는 다음을 실행합니다.

sudo systemctl restart mongod

롤링 재시작이 성공적으로 완료되었는지 확인하려면 각 호스팅하는 곳에서 다음 명령을 실행합니다.

sudo systemctl status mongod

이 절차에 따라 노드 간 클러스터 내 mTLS 및 X.509 인증을 사용하도록 복제본 세트를 구성합니다.

1

중요

노드 인증서에는 클러스터 내 mTLS에 대한 serverAuth 및 EKU가 모두 포함되어야 합니다. 인증서에 가 포함되어 있지 않은 경우 clientAuth clientAuth 대체 구성 옵션은 mTLS 기술 자문에 영향을 미치는 공공 인증 기관 정책 변경 사항을 참조하세요.

각 노드에서 mongod 설정 파일을 찾아 열어야 합니다. 파일이 없는 경우 파일을 만듭니다. 다음 TLS 옵션을 추가합니다. 인증서 파일에 대한 절대 경로를 사용합니다.

예를 들어 프라이머리 노드의 설정 파일은 다음과 같습니다.

net:
tls:
mode: allowTLS
certificateKeyFile: /etc/ssl/mongodb/mongo0.pem
CAFile: /etc/ssl/mongodb/ca.pem
allowConnectionsWithoutCertificates: true
clusterAuthX509:
attributes: O=MongoDB
security:
clusterAuthMode: x509
  • modeallowTLS 로 설정하다 TLS 연결을 허용하지만 필요하지 않으므로 노드가 복제 중단하지 않고 롤링 재시작 완료할 수 있습니다.

  • certificateKeyFile 는 노드의 인증서를 지정합니다. 구성하는 특정 노드의 인증서 키 파일로 파일 이름을 대체합니다. CAFile 는 노드의 인증서에 서명한 CA 인증서를 지정합니다.

  • allowConnectionsWithoutCertificates 클라이언트가 TLS 인증서를 제공하지 않고도 연결할 수 있습니다.

  • net.tls.clusterAuthX509.attributes 는 노드를 일반 클라이언트가 아닌 클러스터 노드로 식별하는 X.509 인증서 속성을 지정합니다. 필요한 인증서 속성에 대한 자세한 내용은 노드 X.509 인증서를 참조하세요.

  • clusterAuthModex509 로 설정하다 노드가 X.509 인증서를 사용하여 인증할 수 있습니다.

2

새 TLS 구성을 적용하려면 mongod 프로세스를 다시 시작합니다. 중단 없이 구성을 적용하려면 노드를 롤링 방식으로 다시 시작합니다.

배포서버의 각 호스트에서 세컨더리 노드를 시작하여 프라이머리 노드로 마무리하는 다음을 실행합니다.

sudo systemctl restart mongod

롤링 재시작이 성공적으로 완료되었는지 확인하려면 각 호스팅하는 곳에서 다음 명령을 실행합니다.

sudo systemctl status mongod
3

TLS가 활성화된 상태로 모든 노드가 성공적으로 다시 시작되면 각 노드의 설정 파일을 업데이트합니다. net.tls.modeallowTLS 에서 requireTLS (으)로 변경하여 모든 클라이언트와 노드에 대한 암호화된 연결을 시행합니다.

net:
tls:
mode: requireTLS
4

새 TLS 구성을 적용하려면 mongod 프로세스를 다시 시작합니다. 중단 없이 구성을 적용하려면 노드를 롤링 방식으로 다시 시작합니다.

배포서버의 각 호스트에서 세컨더리 노드를 시작하여 프라이머리 노드로 마무리하는 다음을 실행합니다.

sudo systemctl restart mongod

롤링 재시작이 성공적으로 완료되었는지 확인하려면 각 호스팅하는 곳에서 다음 명령을 실행합니다.

sudo systemctl status mongod
5

롤링 재시작이 완료되면 각 노드의 로그를 검사하여 TLS가 올바르게 구성되었는지 확인합니다. mTLS 및 X.509 인증이 올바르게 구성되었는지 확인하려면 로그에 다음 내용이 포함되어야 합니다.

"msg":"Successfully authenticated",
"attr": {
"isClusterMember":true,
"mechanism":"MONGODB-X509",
"user":"CN=mongo1.example.com,O=MongoDB,L=New York City,ST=New-York,C=US"
}

복제본 세트의 다른 두 노드에 대해서도 유사한 로그 메시지가 표시됩니다. 예를 들어 mongo0의 로그를 보면 mongo1mongo2에 대한 위와 유사한 메시지가 표시됩니다.

클라이언트 애플리케이션으로 배포서버에 연결하는 방법을 학습하려면 TLS가 활성화된 복제본 세트에 연결으로 이동하세요.

이 페이지 평가하기