Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Configuração TLS/SSL para clientes

Nesta página

  • MongoDB Shell
  • MongoDB Atlas, MongoDB Cloud Manager e MongoDB Ops Manager
  • MongoDB Drivers
  • Ferramentas do MongoDB

Os clientes devem ter suporte para TLS/SSL para se conectarem a uma instância do mongod ou mongos que exija conexões TLS/SSL.

Observação

  • Os binários Linux 64 bits legado x64 do MongoDB não incluem suporte para TLS/SSL.

  • O MongoDB desabilita o suporte para TLS 1. Criptografia 0 em sistemas onde o TLS 1.1+ está disponível.

Importante

Uma descrição completa de certificados TLS/SSL, PKI (Public Key Infrastructure) e autoridade de certificação está além do escopo deste documento. Esta página pressupõe conhecimento prévio de TLS/SSL, bem como acesso a certificados válidos.

mongosh fornece várias configurações TLS/SSL, incluindo:

Opção TLS (novo em 4.2)
Notas
--tls
Habilita a conexão TLS/SSL.

Especifica o arquivo .pem que contém o certificado e a chave de mongosh para apresentar à instância mongod ou mongos . Esta opção é mutuamente exclusiva com --tlsCertificateSelector

mongod / mongos registra um aviso na conexão se o x for apresentado. O certificado 509 expira dentro 30 dias a partir da hora do sistema host mongod/mongos . Consulte x.509 trigger de certificados próximos da expiração para obter mais informações.

Se o arquivo de chave de certificado do mongosh for criptografado.
Especifica o arquivo de .pem da Autoridade de Certificação (CA) para verificação do certificado apresentado pelo mongod ou pela instância mongos.

Se estiver em execução no Windows ou macOS, use um certificado do armazenamento de certificados do sistema. (Novo na versão 4.0)

Esta opção é mutuamente exclusiva com --tlsCertificateKeyFile.

mongod / mongos registra um aviso na conexão se o x for apresentado. O certificado 509 expira dentro 30 dias a partir da hora do sistema host mongod/mongos . Consulte x.509 trigger de certificados próximos da expiração para obter mais informações.

Para obter uma lista completa das mongosh tls opções do , consulte Opções de TLS.

Para conexões TLS/SSL, o mongosh valida o certificado apresentado pela instância mongod ou mongos :

  • mongosh verifica se o certificado é da Autoridade de Certificação especificada (--tlsCAFile. Se o certificado não for da CA especificada, mongosh não conseguirá se conectar.

  • mongosh verifica se o nome de host (especificado na ou na ) corresponde { --host } ao SAN (ou, se SAN não estiver presente, ao CN) no certificado apresentado pelo mongod ou mongos. Se SAN estiver presente, mongosh não corresponde ao CN. Se o nome do host não corresponder a SAN (ou CN), mongosh não conseguirá se conectar.

    A partir do MongoDB 4.2, ao realizar a comparação de SAN, o MongoDB oferece suporte à comparação de nomes DNS ou endereços IP. Nas versões anteriores, o MongoDB suporta apenas comparações de nomes DNS.

    Para conectar mongosh a um mongod ou mongos que exige TLS/SSL, especifique a opção --host ou utilize uma connection string para especificar o nome do host. Todas as outras TLS/SSL opções devem ser especificadas usando as opções de linha de comando.

Para se conectar a uma instância do mongod ou mongos que exige comunicação criptografada, inicie o mongosh com:

Por exemplo, considere uma instância do mongod executando no hostname.example.com com as seguintes opções:

mongod --tlsMode requireTLS --tlsCertificateKeyFile <pem>

Para conectar à instância, inicie o mongosh com as seguintes opções:

mongosh --tls --host hostname.example.com --tlsCAFile /etc/ssl/caToValidateServerCertificates.pem

mongosh verifica o certificado apresentado pela instância mongod relação ao nome de host especificado e ao arquivo da AC.

Para se conectar a um mongod ou mongos que exija certificados de cliente assinados pela CA, comece mongosh com:

Por exemplo, considere uma instância do mongod executando no hostname.example.com com as seguintes opções:

mongod --tlsMode requireTLS --tlsCertificateKeyFile /etc/ssl/mongodb.pem --tlsCAFile /etc/ssl/caToValidateClientCertificates.pem

Para conectar à instância, inicie o mongosh com as seguintes opções:

mongosh --tls --host hostname.example.com --tlsCertificateKeyFile /etc/ssl/client.pem --tlsCAFile /etc/ssl/caToValidateServerCertificates.pem

Para especificar um certificado de cliente a partir do armazenamento de certificados do sistema, utilize a opção --tlsCertificateSelector em vez de --tlsCertificateKeyFile.

Se o arquivo CA também estiver no armazenamento de certificado do sistema, você poderá omitir a opção --tlsCAFile .

Por exemplo, se um certificado com o CN (Nome comum) de myclient.example.net e o arquivo CA que o acompanha estão ambos no armazenamento de certificados do sistema macOS, você pode se conectar assim:

mongosh --tls --host hostname.example.com --tlsCertificateSelector subject="myclient.example.net"

Estas opções estão obsoletas a partir do MongoDB 4.2:

  • --ssl

  • --sslCAFile

  • --sslPEMKeyFile

  • --sslCertificateSelector

Estão disponíveis em mongosh, mas você deve usar as alternativas tls em vez disso.

Aviso

Embora disponível, evite utilizar a opção --tlsAllowInvalidCertificates se possível. Se o uso de --tlsAllowInvalidCertificates for necessário, use a opção apenas em sistemas em que a intrusão não seja possível.

Se o mongosh executar com a opção --tlsAllowInvalidCertificates , o mongosh não tentará validar os certificados do servidor. Isso cria uma vulnerabilidade para certificados mongod e mongos expirados, bem como para processos externos que se fazem passar por instâncias mongod ou mongos válidas. Se você só precisar desabilitar a validação do nome de host nos certificados TLS/SSL, consulte --tlsAllowInvalidHostnames.

O MongoDB Atlas utiliza TLS/SSL para criptografar as conexões com seus bancos de dados.

Os agentes do MongoDB Cloud Manager e do Ops Manager Monitoring usam comunicação criptografada para reunir suas estatísticas. Porque os agentes já criptografam comunicações para os servidores do MongoDB Cloud Manager/Ops Manager, isso é apenas uma questão de habilitar o suporte a TLS/SSL no MongoDB Cloud Manager/Ops Manager por host.

Para mais informações, veja:

Os drivers MongoDB suportam comunicação criptografada. Veja:

Vários programas de utilidade do MongoDB suportam comunicação criptografada. Essas ferramentas incluem:

Para utilizar comunicação codificada com estas ferramentas, utilize as mesmas opções do tls que o mongosh. Consulte Shell do MongoDB.

Dica

Veja também:

← Configurar mongod e mongos para TLS/SSL