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

Conecte-se a um conjunto de réplicas habilitadas para TLS

Este tutorial mostra como conectar mongosh a um conjunto de réplicas autogerenciadas habilitadas para TLS.

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

  • Um conjunto de réplicas que você configurou para usar TLS usando as etapas em Configurar TLS em sistemas autogerenciados.

  • Controle de acesso MongoDB habilitado em sua implantação e pelo menos um usuário administrador criado. Para configurar o controle de acesso, consulte Habilitar controle de acesso em sistemas autogerenciados. Este usuário deve ter clusterMonitor privilégios do.

  • Se você deseja se conectar ao seu sistema utilizando autenticação X.509, certifique-se de ter o OpenSSL instalado para gerar um certificado de cliente .

  • Acesso mongosh a.

Se você não quiser usar a autenticação de cliente TLS mútua ou X.,509 siga este procedimento. Se você allowConnectionsWithoutCertificates definir true como na configuração do servidor , os clientes poderão se conectar sem apresentar um certificado e autenticar com o SCRAM.

1

Conecte o mongosh ao seu conjunto de réplicas utilizando as seguintes opções:

mongosh "mongodb://mongo0.example.com:27017,mongo1.example.com:27017,mongo2.example.com:27017" \
--tls --tlsCAFile /etc/ssl/mongodb/ca.pem
  • --tls habilita a criptografia TLS para a conexão.

  • --tlsCAFile está definido para o certificado da CA que assinou os certificados do servidor para que mongosh possa verificar os certificados do servidor.

A conexão sem um certificado de cliente estabelece uma sessão criptografada por TLS, mas não autentica você. Para executar a maioria dos comandos, você deve autenticar com um mecanismo como SCRAM.

2

Use o método para autenticar com seu nome de usuário e senha de db.auth() administrador.

3

Execute o seguinte para confirmar seu estado de autenticação:

db.adminCommand({ connectionStatus: 1 })

Confirme que authInfo.authenticatedUsers inclui o usuário esperado.

Se você quiser usar a autenticação mútua de cliente TLS e X.509 ao se conectar ao seu sistema, siga este procedimento para criar e autenticar com um certificado de cliente .

1

Aviso

Não use o mesmo certificado que os nós do servidor . Você deve gerar um novo certificado de cliente para509 autenticação X., mesmo que os certificados do seu servidor sejam válidos para autenticação de cliente .

Gere um certificado de cliente usando o processo descrito em Obter certificados de servidor TLS. Faça os seguintes ajustes:

  • Em seu arquivo de configuração, defina extendedKeyUsage = clientAuth em vez de serverAuth.

  • A CA que assinou seus certificados de autenticação de cliente de nó também deve assinar seu certificado de cliente . Geralmente, isso é ca.pem. No entanto, se você obteve certificados separados para autenticação de cliente , poderá ter uma CA diferente para certificados de cliente .

  • Nomeie seus arquivos de saída client.key, client.crt e client.pem em vez dos nomes específicos do nó usados no tutorial de certificado.

Após concluir o processo, copie client.pem para um local seguro na máquina onde você executa mongosh:

cp client.pem /etc/ssl/mongodb/client.pem
2

Identifique o assunto do certificado do cliente . Você precisa desse valor para confirmar que autenticou com o certificado de cliente esperado após a conexão.

Para visualizar o assunto, execute o seguinte comando:

openssl x509 -in /etc/ssl/mongodb/client.pem -noout -subject

Observe a saída, que se parece com o seguinte:

subject=C=US, ST=New-York, L=New York City, O=MongoDB, CN=myUser

Salve o nome do assunto para usar mais tarde neste tutorial. Neste exemplo, o nome do assunto é C=US, ST=New-York, L=New York City, O=MongoDB, CN=myUser.

3

Conecte o mongosh ao seu conjunto de réplicas utilizando as seguintes opções:

mongosh "mongodb://mongo0.example.com:27017,mongo1.example.com:27017,mongo2.example.com:27017" \
--tls \
--tlsCAFile /etc/ssl/mongodb/ca.pem \
--tlsCertificateKeyFile /etc/ssl/mongodb/client.pem
  • --tls habilita a criptografia TLS para a conexão.

  • --tlsCAFile está definido para o certificado da CA que assinou os certificados mongosh do servidor para que possa verificar a conexão do servidor .

  • --tlsCertificateKeyFile apresenta o certificado do cliente e a chave privada que o servidor utiliza para autenticar sua conexão com X.509.

Isso conecta você à sua implantação do MongoDB por TLS.

4

Use o método para autenticar com seu nome de usuário e senha de db.auth() administrador.

5

Crie um usuário no $external banco de dados que corresponda ao nome db.createUser() do assunto do certificado do cliente com o método. Substitua o nome de usuário pelo assunto do certificado do cliente que você identificou anteriormente:

db.getSiblingDB("$external").runCommand({
createUser: "C=US, ST=New-York, L=New York City, O=MongoDB, CN=myUser",
roles: [
{ role: "readWriteAnyDatabase", db: "admin" }
]
})

Após criar um usuário, utilize o método para autenticar db.auth() no $external banco de dados do utilizando509 X.:

db.getSiblingDB("$external").auth({
mechanism: "MONGODB-X509",
user: "C=US, ST=New-York, L=New York City, O=MongoDB, CN=myUser"
})
6

Execute o seguinte para confirmar seu estado de autenticação:

db.adminCommand({ connectionStatus: 1 })

Confirme que authInfo.authenticatedUsers inclui o usuário esperado.

Após concluir este tutorial, o mongosh está conectado ao seu conjunto de réplicas por uma conexão TLS criptografada, autenticada com SCRAM ou X.509.

Voltar

Configurar em sua implantação

Nesta página