Docs Menu
Docs Home
/ /
/ / /

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

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

중요

이 단계는 자체 관리형 MongoDB 배포에 적용 . MongoDB Atlas 클러스터는 기본값 으로 TLS를 사용합니다. Cloud Manager 또는 Ops Manager 사용하는 경우 배포서버 관리 도구를 통해 TLS를 구성합니다.

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

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

  • 서버 인증서 받기 튜토리얼을 따라 얻은 각 노드 에 대한 TLS 서버 mongo0.pem 인증서(예:).

  • 서버 인증서에 서명하기 위한 CA 인증서(예: ca.pem).

  • 각 노드 의 구성 파일 에 액세스합니다.mongod

  • mongosh에 액세스합니다.

서버 노드 간에 클러스터 내 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
  • mode 를 로 allowTLS 설정하다 TLS 연결을 허용하지만 필요하지 않으므로 노드가 복제 중단하지 않고 롤링 재시작 완료할 수 있습니다.

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

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

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

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

3

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

배포서버 의 각 호스팅하다 에서 세컨더리 노드부터 시작하여 프라이머리 노드 까지 다음을 실행 .

sudo systemctl restart mongod

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

sudo systemctl status mongod
4

TLS를 활성화한 상태에서 모든 노드를 성공적으로 다시 시작한 후 각 노드 에서 구성 파일 업데이트 . 모든 클라이언트와 멤버에 대해 암호화됨 연결을 시행하다 하려면 net.tls.modeallowTLS 에서 requireTLS 로 변경합니다.

net:
tls:
mode: requireTLS
5

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

배포서버 의 각 호스팅하다 에서 세컨더리 노드부터 시작하여 프라이머리 노드 까지 다음을 실행 .

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
2

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

배포서버 의 각 호스팅하다 에서 세컨더리 노드부터 시작하여 프라이머리 노드 까지 다음을 실행 .

sudo systemctl restart mongod

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

sudo systemctl status mongod
3

TLS를 활성화한 상태에서 모든 노드를 성공적으로 다시 시작한 후 각 노드 에서 구성 파일 업데이트 . 모든 클라이언트와 멤버에 대해 암호화됨 연결을 시행하다 하려면 net.tls.modeallowTLS 에서 requireTLS 로 변경합니다.

net:
tls:
mode: requireTLS
4

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

배포서버 의 각 호스팅하다 에서 세컨더리 노드부터 시작하여 프라이머리 노드 까지 다음을 실행 .

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 지원 복제본 세트에 연결하기를 계속 진행하세요.

돌아가기

인증서 받기

이 페이지의 내용