Menu Docs

Rotacionar X.509 certificados sem clusterAuthX509 atributos em clusters autogerenciados

Os membros de um conjunto de réplicas ou de um cluster fragmentado podem usar certificados X.509 para autenticação de associação para identificar outros servidores na mesma implantação. Este tutorial descreve como executar uma atualização contínua para girar509 certificados X. em um cluster que não usa as configurações para configurar atributos de Nome Distinto net.tls.clusterAuthX509 (DN).

Observação

Para executar uma atualização contínua para girar certificados em um cluster que usa as configurações ou em um cluster que usará essas configurações após a atualização,net.tls.clusterAuthX509 consulte Girar X.509 Certificados com clusterAuthX509 Atributos em Clusters Autogerenciados .

Quando um nó de servidor recebe uma solicitação de conexão, ele compara os atributos de nome distinto (DN) no campo subject dos certificados apresentados com os atributos DN do assunto de seus próprios certificados. Os certificados corresponderão se seus assuntos contiverem os mesmos valores para os atributos Organização (O), Unidade organizacional (OU) e Componente de domínio (DC). O arquivo de configuração de um servidor também pode especificar atributos DN alternativos a serem usados para a correspondência no tlsX509ClusterAuthDNOverride parâmetro. Se os atributos DN do assunto do servidor ou o tlsX509ClusterAuthDNOverride valor configurado corresponderem aos atributos DN do assunto do certificado apresentado, o nó do servidor tratará a conexão como um membro do cluster.

Em algumas situações, talvez seja necessário atualizar os certificados de membros para novos certificados com novos atributos de nome distinto (DN) do assunto, como se uma organização alterasse seu nome. Em uma atualização contínua, os certificados de membro são atualizados um de cada vez e seu sistema não incorre em nenhum tempo de inatividade.

Os clusters que adotam novos certificados podem usar o parâmetro para aceitar tlsX509ClusterAuthDNOverride x.509 certificados com diferentes atributos DN de assunto durante o procedimento de rotação de certificados. Quando todos os membros usarem certificados com o novo valor, remova a substituição para começar a rejeitar os certificados agora desatualizados.

Considere um conjunto de réplicas em que os certificados X. de cada509 membro, definidos usando as configurações e, têm atributos clusterFile certificateKeyFile DN "OU=10gen Server,O=10gen" de.

Um membro deste conjunto de réplicas possui o seguinte arquivo de configuração:

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"

O procedimento seguinte atualiza os certificados de cada membro para novos certificados que têm atributos DN de assunto de "OU=MongoDB Server, O=MongoDB".

Observação

O procedimento seguinte pressupõe que os novos certificados X. atendam509 ao certificado de associação e a todos os outros requisitos e que a configuração do cluster identifica certificados de mesmo nível utilizando valores de Nome Distinto (DN). Para obter mais informações, consulte Requisitos de certificado de membro.

1

Durante uma atualização contínua, os membros são reiniciados um de cada vez com uma nova configuração. Para permitir que os nós de servidor com os atributos DN do assunto antigo identifiquem nós com os novos atributos DN do assunto como membros do cluster, defina o parâmetro de substituição para os novos atributos DN do assunto em todos os membros em execução.

Para fazer isso, modifique o arquivo de configuração de cada servidor para definir o tlsX509ClusterAuthDNOverride parâmetro para usar os atributos DN do assunto do novo certificado:

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"
setParameter:
tlsX509ClusterAuthDNOverride: "OU=MongoDB Server,O=MongoDB"

Esta configuração não será levada em consideração até que você reinicie cada membro.

2

Para executar uma reinicialização contínua de todos os membros, reinicie cada secundário e, em seguida, o principal.

Para cada membro secundário, conecte mongosh ao membro e:

  1. Use o método db.shutdownServer() para desligar o nó:

    use admin
    db.shutdownServer()
  2. Reinicie o membro.

    Antes de reiniciar o próximo secundário, certifique-se de que este membro atingiu o SECONDARY estado. Para determinar o estado do membro, execute e leia o valor rs.status() do stateStr campo.

    rs.status().members

Para o nó primary, conecte ao nó mongosh e:

  1. Use rs.stepDown() para descer o membro:

    rs.stepDown()
  2. Use o método db.shutdownServer() para desligar o nó:

    use admin
    db.shutdownServer()
  3. Reinicie o membro.

Todos os servidores no conjunto de réplicas agora podem usar o parâmetro de substituição para aceitar conexões de mesmo nível de membros usando certificados com os novos atributos DN do assunto.

3

Atualize o arquivo de configuração de cada servidor:

Por exemplo:

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=10Gen Server,O=10Gen"

Esta configuração não será levada em consideração até que você reinicie cada membro.

4

Para aplicar a configuração atualizada a cada membro, execute uma reinicialização contínua dos nós do servidor repetindo o procedimento da etapa 2.

Durante esse processo, os nós que foram reiniciados com novos certificados usarão os atributos DN antigos armazenados em tlsX509ClusterAuthDNOverride para identificar nós que apresentam certificados antigos. Os nós que ainda tiverem certificados antigos usarão o novo DN armazenado em tlsX509ClusterAuthDNOverride para identificar os nós que apresentam novos certificados.

5

Para evitar que os nós do servidor atualizados tratem os clientes que apresentam o certificado antigo como pares, remova o parâmetro tlsX509ClusterAuthDNOverride de todos os arquivos de configuração do nó do servidor .

Por exemplo:

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"

Esta configuração não será levada em consideração até que você reinicie cada membro.

6

Para aplicar a configuração atualizada a cada membro, execute uma reinicialização contínua dos nós do servidor repetindo o procedimento da etapa 2.

Todos os servidores no conjunto de réplicas agora aceitam conexões de mesmo nível somente de nós que usam certificados que tenham os novos atributos DN do assunto.