O Ops Manager pode girar certificados TLS em uma implantação gerenciada sem reiniciar os processos do MongoDB . Quando você incrementa o campo certificatesVersion na Configuração de automação, o MongoDB Agent executa db.adminCommand({ rotateCertificates: 1 }) em cada processo elegível em vigor, para que as conexões do cliente permaneçam ininterruptas durante toda a operação.
Elegibilidade
O MongoDB Agent aplica a rotação de tempo de inatividade zero apenas a processos que atendem a todos os seguintes requisitos:
A versão do MongoDB é 5.0 ou posterior.
O TLS está configurado no processo.
Todos os nós da implantação atendem aos requisitos acima.
O MongoDB Agent não pode aplicar a rotação de tempo de inatividade zero a um processo em qualquer uma das seguintes categorias. Na IU do MongoDB Ops Manager, a caixa de seleção para uma implantação inelegível está desativada. Por meio da API de automação, o MongoDB Ops Manager rejeita uma atualização de configuração para uma implantação inelegível com um erro HTTP 400 explicando o motivo:
Condição | Comportamento |
|---|---|
Versão do MongoDB anterior a 5.0 | Não selecionável na IU do MongoDB Ops Manager. A API de automação rejeita a atualização de configuração com um erro HTTP 400. |
TLS não configurado | Não selecionável na IU do MongoDB Ops Manager. A API de automação rejeita a atualização de configuração com um erro HTTP 400. |
BI Connector ou | Não selecionável na IU do MongoDB Ops Manager. A API de automação rejeita a atualização de configuração com um erro HTTP 400. |
A mudança de caminho doTLS coincide com a rotação | A reinicialização contínua lida com a alteração do caminho. O MongoDB Ops Manager registra a rotação como concluída. |
Importante
A rotação sem tempo de inatividade exige que todos os processos na implantação atendam aos requisitos de elegibilidade. Se algum processo não se qualificar, use o método existente: navegue até Deployment, Security, Settings, TLS Settings, atualize o caminho do certificado e trigger uma reinicialização contínua por meio de Review and Deploy.
Pré-requisitos
Antes de girar os certificados, verifique o seguinte:
Sua implantação é gerenciada pelo MongoDB Ops Manager Automation.
O TLS está habilitado no sistema.
Seu novo certificado TLS é válido e sobrescrito corretamente no caminho configurado original.
Girar certificados TLS
Use a API de automação ou a IU do MongoDB Ops Manager para trigger a rotação de certificados.
Importante
Você não pode reverter certificatesVersion para um valor anterior por meio da IU ou da API. O MongoDB Ops Manager só permite que esse valor aumente.
Use a API de automação
Para girar certificados usando a API de automação, recupere a configuração de automação atual, incremente certificatesVersion e carregue a configuração atualizada.
Recuperar a configuração de automação atual.
Envie uma solicitação GET para o ponto de extremidade de configuração de automação:
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" \ --digest \ --header "Accept: application/json" \ --request GET \ "https://<OpsManagerHost>/api/public/v1.0/groups/{GROUP-ID}/automationConfig"
Salve o corpo da resposta em um arquivo local, como automation-config.json.
Aumentar o campocertificatesVersion.
No array processes, localize o objeto para cada processo que você deseja girar. Aumente o número inteiro certificatesVersion em 1. Se o campo estiver ausente, adicione-o e defina-o como 1.
Para trigger a rotação in-loco, defina um valor maior do que o valor publicado atualmente. Valores iguais não trigger a rotação. O MongoDB Ops Manager rejeita decrementos com HTTP 400 INVALID_AUTOMATION_CONFIG. Para regras de validação de campo, consulte Processos do MongoDB.
Carregue a configuração de automação atualizada.
Envie uma solicitação PUT com a configuração modificada:
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" \ --digest \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --request PUT \ --data @automation-config.json \ "https://<OpsManagerHost>/api/public/v1.0/groups/{GROUP-ID}/automationConfig"
Use a IU do MongoDB Ops Manager
Para girar certificados usando a IU do Ops Manager, navegue até as configurações de TLS do seu projeto e selecione as implantações a serem giradas.
Estado de rotação e durabilidade
O MongoDB Agent persiste o resultado de cada rotação para que ele sobreviva às reinicializações do agente e seja retomado de onde parou.
O MongoDB Ops Manager registra um evento TLS_CERTIFICATES_ROTATED no feed de atividades do projeto sempre que uma atualização da configuração de automação gira certificados em um ou mais processos. Use este evento para auditar o histórico de rotação de certificados.
Comportamento de Repetir
Se o comando rotateCertificates falhar, o MongoDB Agent retornará o código de erro 128 (TlsCertificatesRotationErr). O MongoDB Ops Manager exibe "Erro de rotação de certificado TLS" no painel de status de automação e reagenda a etapa no próximo tick de convergência. Corrija o arquivo de certificado no disco para resolver o erro.
Se o comando for bem-sucedido, mas o MongoDB Agent não conseguir manter o resultado, ele tentará novamente automaticamente.
Como o agente aplica a rotação
Quando o MongoDB Agent detecta um certificatesVersion incrementado na configuração de automação, ele verifica cada processo elegível em relação aos requisitos de elegibilidade e executa db.adminCommand({ rotateCertificates: 1 }).