Atualização contínua de x.509 Certificados que contêm novo DN em clusters autogerenciados
Membros de um conjunto de réplicas ou um cluster fragmentado podem usar x.509 certificados para autenticação de associação para identificar uns aos outros como membros da mesma implantaçã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 seu sistema não incorre em 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 X.509 em clusters autogerenciados.
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
Procedimento
0. Opcional. Definir parâmetro de substituição em membros em execução
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" } )
1. Modificar a configuração de todos os membros
Modificar a configuração de cada membro:
Atualize
net.tls.certificateKeyFile
para o novo certificado.Atualize
net.tls.clusterFile
para o novo certificado.Defina o parâmetro
tlsX509ClusterAuthDNOverride
para o novo certificadoDN
.
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).
2. Reiniciar cada membro
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:
Use o método
db.shutdownServer()
para desligar o nó:use admin db.shutdownServer() 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
Use
rs.stepDown()
para descer o membro:rs.stepDown() Use o método
db.shutdownServer()
para desligar o nó:use admin db.shutdownServer() Reinicie o membro.
3. Remover a tlsX509ClusterAuthDNOverride
configuração
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.