Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

Atualização contínua de certificados de cluster x.509 que contêm novo DN

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 uns aos outros como membros da mesma implementação.

Para identificar uns aos outros como membros da mesma implantação, os atributos da organização (O), os atributos da unidade organizacional (OU 's) e os componentes de domínio (DC 's) do certificados devem corresponder.

Em algumas situações, talvez seja necessário atualizar os certificados de membro para novos certificados com o novo Nome Distinto (DN), como se uma organização alterasse seu nome. Você pode usar o parâmetro tlsX509ClusterAuthDNOverride para definir uma DN alternativa a ser usada na correspondência. Com esse parâmetro, você pode executar uma atualização contínua dos certificados para novos certificados com um DN diferente.

Observação

Em uma atualização contínua, os certificados de membro são atualizados um de cada vez, e sua implantação não apresenta nenhum tempo de inatividade. Para executar uma atualização contínua para girar certificados em um cluster que usa configurações net.tls.clusterAuthX509 ou em um cluster que usará essas configurações após a atualização, consulte Girar certificados de cluster X.509.

O tutorial a seguir descreve o processo para atualizar os certificados de um conjunto de réplicas sem tempo de inatividade.

Considere um conjunto de réplicas onde os certificados de cada membro (clusterFile e certificateKeyFile) com valor DN que contém "OU=10gen Server,O=10gen" (atributos adicionais não são considerados parte da comparaçã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 dos membros (clusterFile e certificateKeyFile) para novos certificados que têm um valor DN com "OU=MongoDB Server,O=MongoDB".

Observação

O procedimento a seguir pressupõe que os novos certificados x.509 atendam a todos os outros requisitos do certificado de associação. Para obter detalhes, consulte Requisitos de certificado de membro

O procedimento exige que todos os membros da implantação sejam reiniciados. Como as configurações não levarão em consideração até que você reinicie todos os membros, suas instâncias podem registrar mensagens até que o procedimento seja concluído.

Para evitar essas mensagens, você pode definir o parâmetro de substituição em membros em execução.

Conecte mongosh diretamente a cada membro do sistema e defina o parâmetro tlsX509ClusterAuthDNOverride para o novo certificado DN:

db.adminCommand( { setParameter: 1, tlsX509ClusterAuthDNOverride: "OU=MongoDB Server,O=MongoDB" } )

Modificar a configuração de cada membro:

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

As configurações não serão consideradas até que você reinicie cada membro (consulte a próxima etapa).

Depois de modificar a configuração de todos os membros, reinicie cada secundário e, em seguida, o primary.

Para cada nó secundário, conecte mongosh ao nó e:

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

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

    Certifique-se de que o membro tenha atingido o estado SECONDARY antes de reiniciar o próximo secundário.

Para o primário, conecte mongosh ao nó 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.

Após todos os membros terem sido reiniciados com o novo certificado, você poderá remover o parâmetro tlsX509ClusterAuthDNOverride da configuração.

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"

As configurações não serão consideradas até que você reinicie cada membro.

← Atualização da autenticação de keyfiles para a autenticação x.509