Menu Docs
Página inicial do 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, que é necessário para habilitar a509 autenticação X. entre 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á atualmente configurado em nenhum nó do conjunto de réplicas.

  • Certificados de servidor TLS para cada nó obtidos seguindo o tutorial Obter certificados de servidor,mongo0.pem como.

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

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

  • Acesso mongosh a.

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

1

Cada nó utiliza o conteúdo de um arquivo de chave para autenticar outros membros da implantação. Crie um arquivo de chave 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 seu sistema. Certifique-se de restringir permissões no arquivo de chave para que somente o processo mongod possa ler o arquivo.

2

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

Por exemplo, o arquivo de configuração do nó primário tem a seguinte aparência:

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 da 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 utilizam para autenticar uns aos outros.

  • tlsWithholdClientCertificate impede que o nó apresente seu certificado de servidor ao fazer conexões de saída para 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 a clientAuth EKU.

3

Reinicie o processo do 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 host do seu sistema, começando com os nós secundários e terminando com o nó primary, 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 host:

sudo systemctl status mongod
4

Depois que todos os nós forem reiniciados com êxito com o TLS ativado, atualize o arquivo de configuração em cada nó. Altere net.tls.mode de allowTLS para requireTLS para impor conexões criptografadas para todos os clientes e membros:

net:
tls:
mode: requireTLS
5

Reinicie o processo do 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 host do seu sistema, começando com os nós secundários e terminando com o nó primary, 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 host:

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 mongod arquivo de configuração do. Se o arquivo não existir, crie-o. Adicione as seguintes opções de TLS. Use caminhos absolutos para os arquivos de certificado.

Por exemplo, o arquivo de configuração do nó primário tem a seguinte aparência:

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 da 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 membro do cluster, em vez de um cliente normal. Para atributos de certificado exigidos, consulte Membro X.509 Certificado.

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

2

Reinicie o processo do 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 host do seu sistema, começando com os nós secundários e terminando com o nó primary, 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 host:

sudo systemctl status mongod
3

Depois que todos os nós forem reiniciados com êxito com o TLS ativado, atualize o arquivo de configuração em cada nó. Altere net.tls.mode de allowTLS para requireTLS para impor conexões criptografadas para todos os clientes e membros:

net:
tls:
mode: requireTLS
4

Reinicie o processo do 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 host do seu sistema, começando com os nós secundários e terminando com o nó primary, 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 host:

sudo systemctl status mongod
5

Após a conclusão da reinicialização contínua , inspecione os registros em cada nó para verificar se o TLS está configurado corretamente. Seus registros devem incluir o seguinte conteúdo para verificar se a autenticação mTLS e X.509 está configurada 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 registro semelhante para cada um dos outros dois nós em seu conjunto de réplicas. Por exemplo, se você examinar os registros em mongo0, deverá ver mensagens semelhantes às acima para mongo1 e mongo2.

Para saber como se conectar à sua implantação com um aplicação cliente , continue para Conectar-se a um conjunto de réplicas habilitadas para TLS.

Voltar

Obter certificados

Nesta página