x의 롤링 업데이트. 자체 관리형 클러스터에 새 DN이 포함된 509 인증서
복제본 세트 또는 샤딩된 클러스터 의 멤버는 x를 사용할 수 있습니다. 동일한 배포서버 의 구성원으로 서로를 식별하기 멤버십인증 을 위한 인증서입니다 .509
서로를 동일한 배포의 멤버로 식별하기 위해 의 조직 속성(O
), 조직 단위 속성(OU
) 및 도메인 구성 요소(DC
)를 사용합니다. 인증서가 일치해야 합니다.
조직에서 이름을 변경하는 경우와 같이 일부 상황에서는 구성원 인증서를 새 고유 이름(DN
)이 있는 새 인증서로 업데이트해야 할 수 있습니다. tlsX509ClusterAuthDNOverride
매개변수를 사용하여 일치에 사용할 대체 DN
를 설정할 수 있습니다. 이 매개변수를 사용하면 다른 DN
를 사용하여 새 인증서로 인증서를 롤링 업데이트할 수 있습니다.
참고
롤링 업데이트 에서는 구성원 인증서가 한 번에 하나씩 업데이트되며 배포서버 시 다운타임이 발생하지 않습니다. net.tls.clusterAuthX509
설정을 사용하는 클러스터 또는 업데이트 후 이러한 설정을 사용할 클러스터 에서 인증서를 로테이션하는 롤링 업데이트 를 수행하려면 X.509 로테이션 자체 관리 클러스터의 인증서를 참조하세요.
다음 튜토리얼에서는 다운타임 없이 복제본 세트의 인증서를 업데이트하는 프로세스를 설명합니다.
DN
값이 있는 각 멤버의 인증서(clusterFile
및 certificateKeyFile
)가 "OU=10gen Server,O=10gen"
을 포함하는 복제본 세트를 가정해 보겠습니다(추가 속성은 비교의 일부로 고려되지 않음).
net.tls.mode: requireTLS net.tls.certificateKeyFile: "./mycerts/10gen-server1.pem" net.tls.CAFile: "./mycerts/ca.pem" security.clusterAuthMode: x509 net.tls.clusterFile: "./mycerts/10gen-cluster1.pem" net.tls.clusterCAFile: "./mycerts/ca.pem"
다음 절차는 멤버의 인증서(clusterFile
및 certificateKeyFile
)가 "OU=MongoDB Server,O=MongoDB"
인 DN
값을 가진 새 인증서로 업데이트합니다.
참고
다음 절차에서는 새 x.509 인증서가 멤버십 인증서의 다른 모든 요구 사항을 충족한다고 가정합니다. 자세한 내용은 회원 인증서 요건을 참조하세요.
절차
0. 선택 사항. 실행 중인 멤버에 재정의 매개변수 설정
이 절차를 수행하려면 배포의 모든 멤버를 다시 시작해야 합니다. 모든 멤버를 다시 시작할 때까지는 설정이 고려되지 않으므로 절차가 완료될 때까지 인스턴스에서 메시지를 기록할 수 있습니다.
이러한 메시지를 피하려면 실행 중인 멤버에서 재정의 매개변수를 설정하면 됩니다.
mongosh
를 배포의 각 멤버에 직접 연결하고 tlsX509ClusterAuthDNOverride
매개 변수를 새 인증서 DN
로 설정합니다.
db.adminCommand( { setParameter: 1, tlsX509ClusterAuthDNOverride: "OU=MongoDB Server,O=MongoDB" } )
1. 모든 멤버의 구성 수정
각 멤버의 구성을 수정합니다.
net.tls.certificateKeyFile
을(를) 새 인증서로 업데이트합니다.net.tls.clusterFile
을(를) 새 인증서로 업데이트합니다.tlsX509ClusterAuthDNOverride
매개 변수를 새 인증서DN
로 설정합니다.
예를 들면 다음과 같습니다.
net.tls.mode: requireTLS net.tls.certificateKeyFile: "./mycerts/mongodb-server1.pem" net.tls.CAFile: "./mycerts/ca.pem" security.clusterAuthMode: x509 net.tls.clusterFile: "./mycerts/mongodb-cluster1.pem" net.tls.clusterCAFile: "./mycerts/ca.pem" setParameter: tlsX509ClusterAuthDNOverride: "OU=MongoDB Server,O=MongoDB"
각 구성원을 다시 시작할 때까지 설정이 고려되지 않습니다(다음 단계 참조).
2. 각 멤버 다시 시작
모든 멤버에 대한 구성을 수정한 후에는 각 세컨더리를 다시 시작한 다음 프라이머리를 다시 시작합니다.
각 세컨더리 멤버 에 대해 mongosh
를 멤버에 연결하고 다음을 수행합니다.
db.shutdownServer()
메서드를 사용하여 멤버를 종료합니다:use admin db.shutdownServer() 멤버를 다시 시작합니다.
다음 세컨더리를 다시 시작하기 전에 멤버가
SECONDARY
상태에 도달했는지 확인하세요.
프라이머리의 경우 mongosh
를 멤버에 연결하고
rs.stepDown()
를 사용하여 멤버를 물러나게 합니다:rs.stepDown() db.shutdownServer()
메서드를 사용하여 멤버를 종료합니다:use admin db.shutdownServer() 멤버를 다시 시작합니다.
3. tlsX509ClusterAuthDNOverride
설정 제거
모든 멤버가 새 인증서로 다시 시작된 후에는 구성에서 tlsX509ClusterAuthDNOverride
매개 변수를 제거할 수 있습니다.
예를 들면 다음과 같습니다.
net.tls.mode: requireTLS net.tls.certificateKeyFile: "./mycerts/mongodb-server1.pem" net.tls.CAFile: "./mycerts/ca.pem" security.clusterAuthMode: x509 net.tls.clusterFile: "./mycerts/mongodb-cluster1.pem" net.tls.clusterCAFile: "./mycerts/ca.pem"
각 구성원을 다시 시작할 때까지 설정이 고려되지 않습니다.