문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ / /

X.509 인증서를 회전하여 확장자 값 사용

이 페이지의 내용

  • 이 작업에 관한 정보
  • 단계
  • 자세히 알아보기

버전 7.0에 추가.

클러스터 구성원은 구성원 인증 에 X.509 인증서를 사용하여 동일한 배포에 있는 다른 서버를 식별할 수 있습니다.

서버는 연결 요청을 수신하면 인증서의 고유 이름(DN) 값 또는 확장 값 문자열을 clusterAuthX509 설정 및 tlsClusterAuthX509Override 매개변수의 구성된 값과 비교합니다. 값이 일치하면 연결을 cluster 멤버로 취급합니다.

새 인증서를 채택하는 cluster는 tlsClusterAuthX509Override 매개 변수를 사용하여 DN 속성을 사용하여 식별된 인증서에서 인증서 순환 절차 중에 확장 값을 사용하여 식별된 인증서로 마이그레이션할 수 있습니다.

모든 구성원이 새 값으로 인증서를 사용하면 재정의를 제거하여 이제 오래된 인증서 거부를 시작합니다.

회원 인증서( clusterFilecertificateKeyFile 설정을 사용하여 설정)에 MongoDB 조직 및 MongoDB Server 조직 단위( attributes 설정을 사용하여 설정)를 사용하는 고유 이름(DN) 값이 있는 복제본 세트를 생각해 보세요.

security:
clusterAuthMode: x509
net:
tls:
mode: requireTLS
certificateKeyFile: /etc/mycerts/10gen-server1.pem
CAFile: /etc/mycerts/ca.pem
clusterFile: /etc/mycerts/10gen-cluster1.pem
clusterCAFile: /etc/mycerts/ca.pem
clusterAuthX509:
attributes: O=MongoDB, OU=MongoDB Server

이 튜토리얼에서는 새 X.509 인증서가 멤버십 인증서 및 기타 모든 요구 사항을 충족하고 cluster 구성이 확장 값을 사용하여 Peering 인증서를 식별한다고 가정합니다.

자세한 내용은 회원 인증서 요구 사항을 참조하세요.

이 단계에서는 attributes 설정으로 구성된 cluster에서 새 X.509 인증서를 사용하도록 멤버 인증서를 업데이트합니다.

처음에, cluster는 고유 이름 값을 사용하여 노드를 식별합니다. 새 인증서를 사용하면 서버는 대신 mongodb://example.mongodb.net 확장 값을 사용하여 구성원을 식별하고 인증서 속성을 무시합니다.

1

각 서버의 구성 파일을 업데이트합니다.

예를 들면 다음과 같습니다.

net:
tls:
mode: requireTLS
certificateKeyFile: /etc/mycerts/mongodb-server1.pem
CAFile: /etc/mycerts/ca.pem
clusterFile: /etc/mycerts/mongodb-cluster1.pem
clusterCAFile: /etc/mycerts/ca.pem
clusterAuthX509:
extensionValue: mongodb://example.mongodb.net
security:
clusterAuthMode: x509
setParameter:
tlsClusterAuthX509Override: { attributes: O=MongoDB, OU=MongoDBServer }
2

각 세컨더리 cluster 멤버를 다시 시작합니다:

  1. mongosh 를 사용하여 각 세컨더리 클러스터 멤버에 연결한 다음, db.shutdownServer() 메서드를 사용하여 서버를 중지합니다.

    use admin
    db.shutdownServer()
  2. 서버를 다시 시작합니다.

  3. rs.status() 메서드를 사용하여 멤버 상태를 확인합니다.

    rs.status().members
  4. 이 멤버의 stateStr 필드에 SECONDARY 값이 표시될 때까지 기다렸다가 다음 세컨더리를 다시 시작하세요.

이제 서버의 복제본 세트는 이전 DN 속성뿐만 아니라 새 확장 값이 있는 인증서를 사용하여 구성원의 Peering 연결을 허용합니다.

3

프라이머리 멤버를 다시 시작합니다.

  1. mongosh 을 사용하여 프라이머리에 연결한 다음 rs.stepDown() 메서드를 사용하여 멤버를 프라이머리로 강등합니다.

    rs.stepDown()

    cluster는 새 인증서로 보조 인증서를 새 프라이머리 역할을 하도록 승격합니다.

  2. db.shutdownServer() 메서드를 사용하여 서버를 종료합니다:

    use admin
    db.shutdownServer()
  3. 서버를 다시 시작합니다.

복제본 세트의 프라이머리 서버는 이전 고유 이름 속성뿐만 아니라 새 확장 값이 있는 인증서를 사용하여 구성원의 Peering 연결을 허용하는 세컨더리로 다시 시작됩니다.

4

각 서버의 구성 파일을 업데이트합니다.

예를 들면 다음과 같습니다.

net:
tls:
mode: requireTLS
certificateKeyFile: /etc/mycerts/mongodb-server2.pem
CAFile: /etc/mycerts/ca.pem
clusterFile: /etc/mycerts/mongodb-cluster2.pem
clusterCAFile: /etc/mycerts/ca.pem
clusterAuthX509:
extensionValue: mongodb://example.mongodb.net
security:
clusterAuthMode: x509
setParameter:
tlsClusterAuthX509Override: { attributes: O=MongoDB, OU=MongoDB Server }
5

각 세컨더리 cluster 멤버를 다시 시작합니다:

  1. mongosh 를 사용하여 각 세컨더리 클러스터 멤버에 연결한 다음, db.shutdownServer() 메서드를 사용하여 서버를 중지합니다.

    use admin
    db.shutdownServer()
  2. 서버를 다시 시작합니다.

  3. rs.status() 메서드를 사용하여 멤버 상태를 확인합니다.

    rs.status().members
  4. 이 멤버의 stateStr 필드에 SECONDARY 값이 표시될 때까지 기다렸다가 다음 세컨더리를 다시 시작하세요.

이제 복제본 세트의 세컨더리 서버가 새로운 X.509 인증서를 사용합니다.

6

프라이머리 멤버를 다시 시작합니다.

  1. mongosh 을 사용하여 프라이머리에 연결한 다음 rs.stepDown() 메서드를 사용하여 멤버를 프라이머리로 강등합니다.

    rs.stepDown()

    cluster는 새 인증서로 보조 인증서를 새 프라이머리 역할을 하도록 승격합니다.

  2. db.shutdownServer() 메서드를 사용하여 서버를 종료합니다:

    use admin
    db.shutdownServer()
  3. 서버를 다시 시작합니다.

복제본 세트의 프라이머리 서버는 강등되고 새 X.509 인증서를 사용하는 세컨더리 서버로 다시 시작됩니다.

7

이제 cluster의 모든 멤버가 새 X.509 인증서를 사용하므로 구성 setParameter tlsClusterAuthX509Override 파일을 업데이트하여 매개 변수에 대한 설정을 제거합니다.

예를 들면 다음과 같습니다.

net:
tls:
mode: requireTLS
certificateKeyFile: /etc/mycerts/mongodb-server1.pem
CAFile: /etc/mycerts/ca.pem
clusterFile: /etc/mycerts/mongodb-cluster1.pem
clusterCAFile: /etc/mycerts/ca.pem
clusterAuthX509:
extensionValue: mongodb://example.mongodb.net
security:
clusterAuthMode: x509

이렇게 하면 서버가 시작 시 이전 인증서 설정을 구성하지 않습니다.

8

각 세컨더리 cluster 멤버를 다시 시작합니다:

  1. mongosh 를 사용하여 각 세컨더리 클러스터 멤버에 연결한 다음, db.shutdownServer() 메서드를 사용하여 서버를 중지합니다.

    use admin
    db.shutdownServer()
  2. 서버를 다시 시작합니다.

  3. rs.status() 메서드를 사용하여 멤버 상태를 확인합니다.

    rs.status().members
  4. 이 멤버의 stateStr 필드에 SECONDARY 값이 표시될 때까지 기다렸다가 다음 세컨더리를 다시 시작하세요.

복제본 세트의 세컨더리 서버가 다시 시작되고 더 이상 이전 X.509 인증서에서의 연결을 허용하지 않습니다.

9

프라이머리 멤버를 다시 시작합니다.

  1. mongosh 을 사용하여 프라이머리에 연결한 다음 rs.stepDown() 메서드를 사용하여 멤버를 프라이머리로 강등합니다.

    rs.stepDown()

    cluster는 새 인증서로 보조 인증서를 새 프라이머리 역할을 하도록 승격합니다.

  2. db.shutdownServer() 메서드를 사용하여 서버를 종료합니다:

    use admin
    db.shutdownServer()
  3. 서버를 다시 시작합니다.

프라이머리 서버는 더 이상 이전 X.509 인증서에서의 연결을 허용하지 않는 세컨더리 서버로 다시 시작됩니다.

돌아가기

X.509 클러스터 인증서 회전

다음

로컬 호스트 예외