이 튜토리얼에서는 자체 관리 복제본 세트 에서TLS를 구성하는 방법을509 보여줍니다. 노드 간 X. 인증 활성화 데 필요한 클러스터 내 mTLS를 사용할지 여부에 따라 접근 방식을 선택합니다.
중요
이 단계는 자체 관리형 MongoDB 배포에 적용 . MongoDB Atlas 클러스터는 기본값 으로 TLS를 사용합니다. Cloud Manager 또는 Ops Manager 사용하는 경우 배포서버 관리 도구를 통해 TLS를 구성합니다.
시작하기 전에
시작하기 전에 다음 항목이 있는지 확인하세요.
각 노드 에
localhost또는mongo0.example.com와 같은 호스트 이름이 있는 자체 관리 복제본 세트 . 현재 복제본 세트 의 어떤 노드 에도 TLS가 구성되어 있지 않습니다.서버 인증서에 서명하기 위한 CA 인증서(예:
ca.pem).각 노드 의 구성 파일 에 액세스합니다.
mongod
단계
서버 노드 간에 클러스터 내 mTLS 또는 X.509 인증 필요하지 않은 경우 이 절차를 따르세요.
각 노드 에서 구성 파일 편집
각 노드 에서 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가 포함되지 않은 경우 노드가 클라이언트 인증 에 서버 인증 인증서를 사용하는 것을 방지하기 때문에 필요합니다.
이 절차에 따라 노드 간에 클러스터 내 mTLS 및 X.509 인증 사용하도록 복제본 세트 구성합니다.
각 노드 에서 구성 파일 편집
중요
노드 인증서에는 클러스터 내 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
mode를 로allowTLS설정하다 TLS 연결을 허용하지만 필요하지 않으므로 노드가 복제 중단하지 않고 롤링 재시작 완료할 수 있습니다.certificateKeyFile는 노드의 인증서를 지정합니다. 파일 이름을 구성하려는 특정 노드 의 인증서 키 파일 로 바꿉니다.CAFile는 노드의 인증서에 서명한 CA 인증서를 지정합니다.allowConnectionsWithoutCertificates클라이언트가 TLS 인증서를 제공하지 않고도 연결할 수 있습니다.net.tls.clusterAuthX509.attributes는 노드509 를 일반 클라이언트 아닌 클러스터 멤버로 식별하는 X. 인증서 속성을 지정합니다. 필수 인증서 속성은 멤버 X.509 인증서를 참조하세요.clusterAuthMode를x509로 설정하다 노드가 X.509 인증서를 사용하여 인증할 수 있습니다.
로그를 검사하여 TLS 구성 확인
롤링 재시작 완료되면 각 노드 의 로그를 검사하여 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에 대한 로그를 살펴보면 mongo1 및 mongo2에 대해 위와 유사한 메시지가 표시되어야 합니다.
다음 단계
클라이언트 애플리케이션 사용하여배포서버 에 연결하는 방법을 학습 TLS 지원 복제본 세트에 연결하기를 계속 진행하세요.