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

Rotacione certificados X.509 para usar valores de extensão em clusters autogerenciados

Nesta página

  • Sobre esta tarefa
  • Passos
  • Saiba mais

Novidades na versão 7.0.

Os membros do cluster podem usar509 certificados X. 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 migrar do uso de atributos de nome distinto (DN) do certificado para o uso de valores de extensão para identificar membros de um cluster.

Quando um servidor configurado com a configuração recebe uma solicitação de net.tls.clusterAuthX509.extensionValue conexão, ele compara a string de valor de extensão dos certificados extensionValue tlsClusterAuthX509Override apresentados com os valores configurados da configuração e do parâmetro. Se os valores corresponderem, ele tratará a conexão como um membro do cluster.

Os clusters que adotam novos certificados podem usar o parâmetro tlsClusterAuthX509Override para aceitar certificados X.509 com diferentes atributos de nome diferenciado durante o procedimento de rotação de certificados. Depois que 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 de membro, definidos usando as configurações e, têm atributos de DN (Distinguished Name) que usam clusterFile certificateKeyFile a MongoDB organização e a MongoDB Server unidade organizacional. Estes atributos DN são definidos usando a net.tls.clusterAuthX509.attributes configuração.

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

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.

Estas etapas atualizam certificados de membro para utilizar novos certificados X.509 em um cluster configurado com a configuração attributes .

Inicialmente, os clusters identificam membros usando valores de nome diferenciado. Com os novos certificados, os servidores identificam membros usando o valor de extensão mongodb://example.mongodb.net e ignoram os atributos do certificado.

1

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

  • Altere a configuração clusterAuthX509 para corresponder ao novo certificado substituindo a configuração attributes pela configuração extensionValue .

  • Configure o parâmetro tlsClusterAuthX509Override para utilizar os atributos DN do certificado antigo.

Por exemplo:

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

Reinicie cada membro do cluster secundário:

  1. Use mongosh para se conectar a cada nó do cluster secundário e, em seguida, use o método db.shutdownServer() para parar o servidor:

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

  3. Use o método rs.status() para determinar o estado membro:

    rs.status().members
  4. Aguarde o campo stateStr para este membro mostrar um valor de SECONDARY e, em seguida, reinicie o próximo secundário.

Os servidor secundários no conjunto de réplicas agora aceitam conexões de Peering de membros usando certificados com os novos valores de extensão, bem como os nome diferenciado antigos.

3

Reinicie o membro principal:

  1. Conecte-se ao primário usando mongosh e, em seguida, use o método rs.stepDown() para reduzir o membro como primário:

    rs.stepDown()

    O cluster promove um secundário com o novo certificado para servir como o novo primário.

  2. Use o método db.shutdownServer() para desligar o servidor:

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

O servidor primário no conjunto de réplicas é desativado e reiniciado como um secundário que agora aceita conexões de mesmo nível de membros usando certificados com o novo valor de extensão, bem como os atributos DN antigos.

4

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

Por exemplo:

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

Reinicie cada membro do cluster secundário:

  1. Use mongosh para se conectar a cada nó do cluster secundário e, em seguida, use o método db.shutdownServer() para parar o servidor:

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

  3. Use o método rs.status() para determinar o estado membro:

    rs.status().members
  4. Aguarde o campo stateStr para este membro mostrar um valor de SECONDARY e, em seguida, reinicie o próximo secundário.

Os servidores secundários no conjunto de réplicas agora usam os novos certificados X.509.

6

Reinicie o membro principal:

  1. Conecte-se ao primário usando mongosh e, em seguida, use o método rs.stepDown() para reduzir o membro como primário:

    rs.stepDown()

    O cluster promove um secundário com o novo certificado para servir como o novo primário.

  2. Use o método db.shutdownServer() para desligar o servidor:

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

O servidor primário na réplicas é desativado e reiniciado como um secundário que usa o novo certificado X.509.

7

Com todos os membros do cluster agora usando o novo certificado X.509, atualize o arquivo de configuração para remover as configurações setParameter do parâmetro tlsClusterAuthX509Override .

Por exemplo:

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

Isso garante que o servidor não defina as configurações antigas do certificado na inicialização.

8

Reinicie cada membro do cluster secundário:

  1. Use mongosh para se conectar a cada nó do cluster secundário e, em seguida, use o método db.shutdownServer() para parar o servidor:

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

  3. Use o método rs.status() para determinar o estado membro:

    rs.status().members
  4. Aguarde o campo stateStr para este membro mostrar um valor de SECONDARY e, em seguida, reinicie o próximo secundário.

Os servidores secundários no conjunto de réplicas são reiniciados e não aceitam mais conexões dos certificados X.509 antigos.

9

Reinicie o membro principal:

  1. Conecte-se ao primário usando mongosh e, em seguida, use o método rs.stepDown() para reduzir o membro como primário:

    rs.stepDown()

    O cluster promove um secundário com o novo certificado para servir como o novo primário.

  2. Use o método db.shutdownServer() para desligar o servidor:

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

O servidor primário é desativado e reiniciado como um secundário que não aceita mais conexões dos certificados X.509 antigos.

Voltar

Rotate X.509 com novos atributos clusterAuthX509