Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Configurar TLS em implantações autogerenciadas

Este tutorial mostra como configurar o TLS em um conjunto de réplicas autogerenciado. Selecione uma abordagem com base no fato de você desejar usar o mTLS intra-cluster, necessário para habilitar a autenticação X.509 entre os nós.

Importante

Essas etapas se aplicam a deployments autogerenciados do MongoDB . Os clusters do MongoDB Atlas usam TLS por padrão. Se você usar o Cloud Manager ou o Ops Manager, configure o TLS por meio de sua ferramenta de gerenciamento de implementação.

Antes de começar, verifique se você tem o seguinte:

  • Um conjunto de réplicas autogerenciado no qual cada nó tem um nome de host, como localhost ou mongo0.example.com. O TLS não está configurado atualmente em nenhum nó no conjunto de réplicas.

  • Certificados de servidor TLS para cada nó que você obteve seguindo o tutorial Obter certificados de servidor, como mongo0.pem.

  • Um certificado CA para assinar os certificados do servidor, como ca.pem.

  • Acesso ao arquivo de configuração mongod em cada nó.

  • Acesso mongosh a.

Siga este procedimento se não precisar de mTLS intra-cluster ou autenticação X.509 entre nós de servidor.

1

Cada nó usa o conteúdo de um keyfile para autenticar outros nós da implantação. Crie um keyfile usando o seguinte comando:

openssl rand -base64 756 > /etc/ssl/mongodb/keyfile
chmod 400 /etc/ssl/mongodb/keyfile

Copie o arquivo-chave para cada nó em sua implantação. Certifique-se de restringir as permissões no arquivo-chave para que apenas o processo mongod possa ler o arquivo.

2

Em cada nó, localize e abra seu arquivo de configuração mongod. Se o arquivo não existir, crie-o. Adicione as seguintes opções TLS. Use caminhos absolutos para os arquivos de certificado.

Por exemplo, o arquivo de configuração do seu nó primário é semelhante ao seguinte:

net:
tls:
mode: allowTLS
certificateKeyFile: /etc/ssl/mongodb/mongo0.pem
CAFile: /etc/ssl/mongodb/ca.pem
allowConnectionsWithoutCertificates: true
security:
clusterAuthMode: keyFile
keyFile: /etc/ssl/mongodb/keyfile
setParameter:
tlsWithholdClientCertificate: true
  • mode definido como allowTLS aceita conexões TLS, mas não as exige, para que os nós possam concluir uma reinicialização contínua sem interromper a replicação.

  • certificateKeyFile especifica o certificado do nó. Substitua o nome do arquivo pelo arquivo de chave de certificado do nó específico que você está configurando. CAFile especifica o certificado CA que assinou o certificado do nó.

  • allowConnectionsWithoutCertificates permite que os clientes se conectem sem fornecer um certificado TLS.

  • clusterAuthMode definido como keyFile permite que os nós se autentiquem usando um arquivo de chave. keyFile especifica o arquivo de chave que os nós usam para se autenticar uns aos outros.

  • tlsWithholdClientCertificate impede que o nó apresente seu certificado de servidor ao fazer conexões de saída com outros nós no cluster. Isso é necessário porque impede que os nós usem certificados de autenticação de servidor para autenticação de cliente, especialmente se seus certificados não incluírem o EKU clientAuth.

3

Reinicie o processo mongod para aplicar a nova configuração TLS. Para aplicar a configuração sem tempo de inatividade, reinicie os nós de forma contínua.

Em cada hospedar para sua implantação, começando com os secundários e terminando com o nó primário, execute o seguinte:

sudo systemctl restart mongod

Para verificar se a reinicialização contínua foi concluída com sucesso, execute o seguinte comando em cada hospedar:

sudo systemctl status mongod
4

Depois que todos os nós reiniciarem com sucesso com o TLS ativado, atualize o arquivo de configuração em cada nó. Altere net.tls.mode de allowTLS para requireTLS para forçar conexões criptografadas para todos os clientes e nós:

net:
tls:
mode: requireTLS
5

Reinicie o processo mongod para aplicar a nova configuração TLS. Para aplicar a configuração sem tempo de inatividade, reinicie os nós de forma contínua.

Em cada hospedar para sua implantação, começando com os secundários e terminando com o nó primário, execute o seguinte:

sudo systemctl restart mongod

Para verificar se a reinicialização contínua foi concluída com sucesso, execute o seguinte comando em cada hospedar:

sudo systemctl status mongod

Siga este procedimento para configurar seu conjunto de réplicas para usar mTLS intra-cluster e autenticação X.509 entre nós.

1

Importante

Seus certificados de nó devem incluir serverAuth e clientAuth EKU para mTLS intra-cluster. Se seus certificados não clientAuth incluírem, consulte o Aviso técnico sobre as alterações da política da autoridade de certificação pública que afetam o mTLS para obter opções de configuração alternativas.

Em cada nó, localize e abra seu arquivo de configuração mongod. Se o arquivo não existir, crie-o. Adicione as seguintes opções TLS. Use caminhos absolutos para os arquivos de certificado.

Por exemplo, o arquivo de configuração do seu nó primário é semelhante ao seguinte:

net:
tls:
mode: allowTLS
certificateKeyFile: /etc/ssl/mongodb/mongo0.pem
CAFile: /etc/ssl/mongodb/ca.pem
allowConnectionsWithoutCertificates: true
clusterAuthX509:
attributes: O=MongoDB
security:
clusterAuthMode: x509
  • mode definido como allowTLS aceita conexões TLS, mas não as exige, para que os nós possam concluir uma reinicialização contínua sem interromper a replicação.

  • certificateKeyFile especifica o certificado do nó. Substitua o nome do arquivo pelo arquivo de chave de certificado do nó específico que você está configurando. CAFile especifica o certificado CA que assinou o certificado do nó.

  • allowConnectionsWithoutCertificates permite que os clientes se conectem sem fornecer um certificado TLS.

  • net.tls.clusterAuthX509.attributes especifica os atributos de certificado X.509 que identificam um nó como nó do cluster, em vez de um cliente regular. Para atributos de certificado necessários, consulte Certificado X.509 do nó.

  • clusterAuthMode definido como x509 permite que os nós se autentiquem usando certificados X.509.

2

Reinicie o processo mongod para aplicar a nova configuração TLS. Para aplicar a configuração sem tempo de inatividade, reinicie os nós de forma contínua.

Em cada hospedar para sua implantação, começando com os secundários e terminando com o nó primário, execute o seguinte:

sudo systemctl restart mongod

Para verificar se a reinicialização contínua foi concluída com sucesso, execute o seguinte comando em cada hospedar:

sudo systemctl status mongod
3

Depois que todos os nós reiniciarem com sucesso com o TLS ativado, atualize o arquivo de configuração em cada nó. Altere net.tls.mode de allowTLS para requireTLS para forçar conexões criptografadas para todos os clientes e nós:

net:
tls:
mode: requireTLS
4

Reinicie o processo mongod para aplicar a nova configuração TLS. Para aplicar a configuração sem tempo de inatividade, reinicie os nós de forma contínua.

Em cada hospedar para sua implantação, começando com os secundários e terminando com o nó primário, execute o seguinte:

sudo systemctl restart mongod

Para verificar se a reinicialização contínua foi concluída com sucesso, execute o seguinte comando em cada hospedar:

sudo systemctl status mongod
5

Após a reinicialização contínua ser concluída, inspecione os logs em cada nó para verificar se o TLS está configurado corretamente. Seus logs devem incluir o seguinte conteúdo para verificar se a autenticação mTLS e X.509 estão configuradas corretamente:

"msg":"Successfully authenticated",
"attr": {
"isClusterMember":true,
"mechanism":"MONGODB-X509",
"user":"CN=mongo1.example.com,O=MongoDB,L=New York City,ST=New-York,C=US"
}

Você deve ver uma mensagem de log semelhante para cada um dos outros dois nós em seu conjunto de réplicas. Por exemplo, se você observar os logs em mongo0, deverá ver mensagens semelhantes às acima para mongo1 e mongo2.

Para aprender como se conectar à sua implantação com um aplicativo cliente, continue em Conectar-se a um conjunto de réplicas habilitado para TLS.