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

Configurar mongod e mongos para TLS/SSL

Nesta página

  • Visão geral
  • Pré-requisitos
  • Autoridades de certificação
  • Arquivo de chave de certificado mongod e mongos
  • Procedimentos (usando configurações net.tls)
  • Configurar o mongod e mongos com certificado TLS/SSL e chave
  • Configurar mongod e mongos com validação do certificado de cliente
  • Não permitir protocolos
  • Senha do Certificado TLS/SSL
  • Rotação de certificados online
  • Executar no modo FIPS
  • Próximos passos
  • Procedimentos (usando configurações net.ssl)
  • Configurar o mongod e mongos com certificado TLS/SSL e chave
  • Configurar mongod e mongos com validação do certificado de cliente
  • Não permitir protocolos
  • Senha do Certificado TLS/SSL
  • Executar no modo FIPS
  • Próximos passos

Este documento ajuda você a configurar uma nova instância do MongoDB para dar suporte a TLS/SSL. Para instruções sobre como fazer upgrade de um cluster que atualmente não usa TLS/SSL para passar a usar TLS/SSL, consulte Fazer upgrade de um cluster para usar TLS/SSL.

O MongoDB usa as bibliotecas de sistemas operacionais TLS/SSL nativas:

Plataforma
Biblioteca TLS/SSL
Windows
Secure Channel (Schannel)
Linux/BSD
OpenSSL
macOS
Secure Transport

Observação

  • O MongoDB desabilita o suporte para criptografia TLS 1.0 em sistemas em que o TLS 1.1+ está disponível.

  • A criptografia TLS/SSL do MongoDB permite apenas o uso de cifras TLS/SSL fortes com um comprimento mínimo de chave de 128 bits para todas as conexões.

  • As construções do Linux de 64 bits legado x64 do MongoDB não incluem suporte para TLS/SSL.

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.

Para uso em produção, seu MongoDB deployment deve usar certificados válidos gerados e assinados por uma autoridade de certificação. Você ou sua organização podem gerar e manter uma autoridade de certificação independente ou usar certificados gerados por fornecedores de TLS de terceiros. Obter e gerenciar certificados está além do escopo desta documentação.

Use certificados de membro para verificar a associação a um cluster fragmentado ou a um conjunto de réplicas. Os caminhos do arquivo de certificado do nó são configurados com as opções net.tls.clusterFile e net.tls.certificateKeyFile. Os nós têm os seguintes requisitos de configuração:

  • A configuração do membro do cluster deve especificar um valor não vazio para pelo menos um dos atributos utilizados para autenticação. Por padrão, o MongoDB aceita:

    • a Organização (O)

    • a Unidade Organizacional (OU)

    • o componente de domínio (DC)

    Você pode especificar atributos alternativos para utilizar para autenticação configurando net.tls.clusterAuthX509.extensionValue.

  • A configuração do membro do cluster deve incluir o mesmo net.tls.clusterAuthX509.attributes e utilizar valores correspondentes. A ordem dos atributos não importa. O exemplo a seguir define O e OU, mas não DC:

    net:
    tls:
    clusterAuthX509:
    attributes: O=MongoDB, OU=MongoDB Server

Observação

Se você desabilitar o parâmetro enforceUserClusterSeparation , os seguintes comportamentos se aplicarão:

  • A verificação O/OU/DC estará desativada se clusterAuthMode estiver keyFile no seu arquivo de configuração. Isto permite que clientes que possuem certificados de membro se autentiquem como usuários armazenados no banco de dados $external .

  • O servidor não iniciará se clusterAuthMode não estiver keyFile em seu arquivo de configuração.

Se você definir o parâmetro enforceUserClusterSeparation como false, o servidor não fará distinção entre certificados de cliente, que os aplicativos usam para autenticar, e certificados intra-cluster, que têm acesso privilegiado. Isso não terá efeito se o seu clusterAuthMode for keyFile. No entanto, se o seu clusterAuthMode for x509, os certificados de usuário que usam o esquema permitido serão confundidos com certificados de cluster e concedidos acesso privilegiado.

Seus certificados existentes receberão privilégios internos se você fizer o seguinte:

  1. Crie um usuário, com um nome permitido por este parâmetro.

  2. Configure o parâmetro enforceUserClusterSeparation para false.

  3. Defina clusterAuthMode como x509.

Você não deve atualizar de keyFile para x509 sem validar que removeu usuários com privilégios elevados que o sinalizador enforceUserClusterSeparation lhe permitido criar.

Para configurar o parâmetro enforceUserClusterSeparation para false, execute o seguinte comando durante a inicialização:

mongod --setParameter enforceUserClusterSeparation=false

Os certificados têm os seguintes requisitos:

  • Uma única CA (Certificate Authority, autoridade de certificação) deve emitir todos os certificados x.509 para os membros de um cluster fragmentado ou de um conjunto de réplicas.

  • Pelo menos uma das entradas de nome alternativo do assunto (SAN) deve corresponder ao nome de host do servidor usado por outros membros do cluster. Ao comparar SANs, o MongoDB pode comparar nomes DNS ou endereços IP.

    Se você não especificar subjectAltName, o MongoDB compara o nome comum (CN). No entanto, esse uso de CN ficou obsoleto de acordo com RFC2818

  • Se o certificado utilizado como certificateKeyFile incluir extendedKeyUsage, o valor deverá incluir clientAuth ("Autenticação de cliente Web TLS") e serverAuth ("Autenticação de servidor Web TLS").

    extendedKeyUsage = clientAuth, serverAuth
  • Se o certificado utilizado como clusterFile incluir extendedKeyUsage, o valor deverá incluir clientAuth.

    extendedKeyUsage = clientAuth

Ao estabelecer uma conexão TLS/SSL, o mongod / mongos apresenta um arquivo de chave de certificado a seus clientes para estabelecer sua identidade. [1] O arquivo de chave de certificado contém um certificado de chave pública e sua chave privada associada, mas apenas o componente público é revelado ao cliente.

O MongoDB pode usar qualquer certificado TLS/SSL válido emitido por uma autoridade de certificação ou um certificado autoassinado. Se você usar um certificado autoassinado, embora o canal de comunicação seja criptografado para evitar a espionagem da conexão, não haverá validação da identidade do servidor. Isso deixa você vulnerável a um ataque man-in-the-middle. Usar um certificado assinado por uma autoridade certificadora confiável permitirá que drivers MongoDB verifiquem a identidade do servidor.

Em geral, evite utilizar certificados autoassinados a menos que a rede seja confiável.

Com relação aos certificados para membros de conjunto de réplicas e cluster fragmentado , é aconselhável usar certificados diferentes em servidores diferentes. Isso minimiza a exposição da chave privada e permite a validação do nome do host.

Observação

Se um MongoDB deployment não estiver configurado para usar um arquivo de AC, ele ignorará a validação do certificado do cliente.

[1] Para o modo FIPS, verifique se o certificado é compatível com FIPS (ou seja, usa um algoritmo compatível com FIPS) e se a chave privada atende ao padrão PKCS#8. Se você precisar converter uma chave privada para o formato PKCS#8, existem várias ferramentas de conversão, como openssl pkcs8 e outras.

Observação

O MongoDB apresenta configurações net.tls (e opções de linha de comando --tls ) que correspondem às configurações net.ssl (e opções de linha de comando --ssl ). As novas configurações tls fornecem funcionalidade idêntica às configurações ssl, já que o MongoDB sempre suportou o TLS 1.0 e mais tarde.

Os procedimentos nesta seção usam as configurações do net.tls. Para procedimentos que usam o alias net.ssl, consulte Procedimentos (Usando configurações net.ssl).

A seção a seguir configura mongod / mongos para usar conexões TLS/SSL. Com essas configurações de TLS/SSL, mongod / mongos apresenta seu arquivo de chave de certificado ao cliente. No entanto, o mongod / mongos não exige um arquivo de chave do certificado do cliente para verificar a identidade do cliente. Para exigir o arquivo de chave do certificado do cliente, consulte Configurar mongod e mongos com a validação do certificado do cliente em vez disso.

Observação

O procedimento usa as configurações net.tls. Para procedimentos que usam as configurações net.ssl, consulte Procedimentos (usando configurações net.ssl).

Para usar conexões TLS/SSL, inclua as seguintes configurações TLS/SSL em seu mongod / mongos arquivo de configuração das instâncias:

Contexto
Notas

Defina como requireTLS.

Esta configuração restringe cada servidor a usar somente conexões criptografadas TLS/SSL. Você também pode especificar o valor allowTLS ou preferTLS para configurar o uso de modos mistos TLS/SSL em uma porta. Consulte net.tls.mode para obter detalhes.

Defina o caminho do arquivo que contém o certificado TLS/SSL e a chave.

A instância mongod / mongos apresenta este arquivo aos clientes para estabelecer a identidade da instância.

Por exemplo, considere o seguinte arquivo de configuração para uma instância mongod:

net:
tls:
mode: requireTLS
certificateKeyFile: /etc/ssl/mongodb.pem
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
dbPath: "/var/lib/mongodb"
processManagement:
fork: true
net:
bindIp: localhost,mongodb0.example.net
port: 27017

Você pode usar armazenamentos de certificados SSL do sistema para Windows e macOS. Para usar o armazenamento de certificados SSL do sistema, especifique net.tls.certificateSelector em vez de especificar o arquivo de chave do certificado.

Contexto
Notas

Defina como requireTLS.

Esta configuração restringe cada servidor a usar somente conexões criptografadas TLS/SSL. Você também pode especificar o valor allowTLS ou preferTLS para configurar o uso de modos mistos TLS/SSL em uma porta. Consulte net.tls.mode para obter detalhes.

Defina como a propriedade ( subject ou thumbprint) e valor.

Esta configuração é usada para selecionar o certificado. Consulte net.tls.certificateSelector para obter detalhes.

Por exemplo, considere o seguinte arquivo de configuração para uma instância mongod:

net:
tls:
mode: requireTLS
certificateSelector: subject="<CertificateCommonName>"
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
dbPath: "/var/lib/mongodb"
processManagement:
fork: true
net:
bindIp: localhost,mongodb0.example.net
port: 27017

Uma instância mongod que usa a configuração acima só pode aceitar conexões TLS/SSL:

mongod --config <path/to/configuration/file>

Consulte Conectar-se as instâncias do MongoDB usando criptografia para obter mais informações sobre como se conectar com TLS/SSL.

Dica

Veja também:

Você também pode configurar mongod e mongos usando opções de linha de comando em vez do arquivo de configuração:

A seção a seguir configura mongod / mongos para usar conexões TLS/SSL e realizar a validação do certificado do cliente. Com estas configurações TLS/SSL:

  • mongod / mongos apresenta seu arquivo de chave de certificado para o cliente para verificação.

  • mongod / mongos requer um arquivo de chave de certificado do cliente para verificar a identidade do cliente.

Observação

O procedimento usa as configurações net.tls. Para procedimentos que usam as configurações net.ssl, consulte Procedimentos (usando configurações net.ssl).

Para usar conexões TLS/SSL e realizar a validação do certificado do cliente, inclua as seguintes configurações de TLS/SSL no mongod mongos arquivo de configuração da instância / :

Observação

Você pode usar armazenamentos de certificados SSL do sistema para Windows e macOS. Para usar o armazenamento de certificados SSL do sistema, especifique net.ssl.certificateSelector em vez de especificar o arquivo de chave do certificado.

Contexto
Notas

Defina como requireTLS.

Esta configuração restringe cada servidor a usar somente conexões criptografadas TLS/SSL. Você também pode especificar o valor allowTLS ou preferTLS para configurar o uso de modos mistos TLS/SSL em uma porta. Consulte net.tls.mode para obter detalhes.

Defina o caminho do arquivo que contém o certificado TLS/SSL e a chave.

A instância mongod / mongos apresenta este arquivo aos clientes para estabelecer a identidade da instância.

Defina como o caminho do arquivo que contém a cadeia de certificados para verificar certificados de cliente.

A instânciamongod / mongos utiliza este arquivo para verificar os certificados apresentados por seus clientes. A sequência de certificados inclui o certificado da autoridade de certificação raiz.

Importante

Ao iniciar uma instância do mongod com TLS/SSL habilitado, você deve especificar um valor para o sinalizador --tlsCAFile, a opção de configuração do net.tls.CAFile ou o parâmetro tlsUseSystemCA.

--tlsCAFile, tls.CAFile e tlsUseSystemCA são mutuamente exclusivos.

Por exemplo, considere o seguinte arquivo de configuração para uma instância mongod:

net:
tls:
mode: requireTLS
certificateKeyFile: /etc/ssl/mongodb.pem
CAFile: /etc/ssl/caToValidateClientCertificates.pem
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
dbPath: "/var/lib/mongodb"
processManagement:
fork: true
net:
bindIp: localhost,mongodb0.example.net
port: 27017

Uma instância mongod que usa a configuração acima só pode aceitar conexões TLS/SSL e requer um certificado válido de seus clientes:

mongod --config <path/to/configuration/file>

Os clientes devem especificar conexões TLS/SSL e apresentar seu arquivo de chave de certificado à instância. Consulte Conectar-se a instâncias do MongoDB que exigem certificados de cliente para obter mais informações sobre como se conectar com TLS/SSL.

Dica

Veja também:

Você também pode configurar mongod e mongos usando opções de linha de comando em vez do arquivo de configuração:

Observação

O procedimento usa as configurações net.tls. Para procedimentos que usam as configurações net.ssl, consulte Procedimentos (usando configurações net.ssl).

Para impedir que clientes com certificados revogados se conectem à instância mongod ou mongos , você pode usar uma lista de revogação de certificados (CRL).

Para especificar um arquivoCRL do , inclua o net.tls.CRLFile configurado para um arquivo que contém certificados revogados.

Por exemplo:

net:
tls:
mode: requireTLS
certificateKeyFile: /etc/ssl/mongodb.pem
CAFile: /etc/ssl/caToValidateClientCertificates.pem
CRLFile: /etc/ssl/revokedCertificates.pem

Os clientes que apresentam certificados listados no arquivo /etc/ssl/revokedCertificates.pem não conseguem se conectar.

Dica

Veja também:

Você também pode configurar a lista de certificados revogados usando a opção de linha de comando.

Na maioria dos casos, é importante garantir que os clientes apresentem certificados válidos. No entanto, se você tiver clientes que não puderem apresentar um certificado de cliente ou estiverem fazendo a transição para o uso de um certificado, você só deverá validar certificados de clientes que apresentem um certificado.

Observação

O procedimento usa as configurações net.tls. Para procedimentos que usam as configurações net.ssl, consulte Procedimentos (usando configurações net.ssl).

Para ignorar a validação de certificado de cliente para clientes que não apresentam um certificado, inclua net.tls.allowConnectionsWithoutCertificates definido como true.

Por exemplo:

net:
tls:
mode: requireTLS
certificateKeyFile: /etc/ssl/mongodb.pem
CAFile: /etc/ssl/caToValidateClientCertificates.pem
allowConnectionsWithoutCertificates: true

Um mongod / mongos em execução com essas configurações permite a conexão de:

  • Clientes que não apresentam um certificado.

  • Clientes que apresentam um certificado válido.

Observação

Se o cliente apresentar um certificado, o certificado deverá ser um certificado válido.

Todas as conexões, incluindo aquelas que não apresentavam certificados, são criptografadas usando TLS/SSL.

Consulte Configuração TLS/SSL para clientes para obter mais informações sobre conexões TLS/SSL para clientes.

Dica

Veja também:

Você também pode configurar usando as opções de linha de comando:

Observação

O procedimento usa as configurações net.tls. Para procedimentos que usam as configurações net.ssl, consulte Procedimentos (usando configurações net.ssl).

Para evitar que os servidores MongoDB aceitem conexões de entrada que usam protocolos específicos, inclua net.tls.disabledProtocols definido como os protocolos não permitidos.

Por exemplo, a configuração a seguir impede que mongod / mongos aceite conexões recebidas que usem TLS1_0 ou TLS1_1

net:
tls:
mode: requireTLS
certificateKeyFile: /etc/ssl/mongodb.pem
CAFile: /etc/ssl/caToValidateClientCertificates.pem
disabledProtocols: TLS1_0,TLS1_1

Dica

Veja também:

Você também pode configurar usando as opções de linha de comando:

Se os arquivos de chave de certificado para mongod / mongos estiverem criptografados, inclua net.tls.certificateKeyFilePassword definido como senha.

Dica

Para evitar inserir a senha em texto não criptografado, é possível usar um valor de expansão no arquivo de configuração.

Dica

Veja também:

Você também pode configurar usando as opções de linha de comando:

A partir do MongoDB 5.0, você pode girar os seguintes arquivos de chave de certificado on-demand:

Para rotacionar um ou mais desses certificados:

  1. Substitua o certificado ou certificados que você deseja girar no sistema de arquivos, observando as seguintes restrições:

    • Cada novo certificado deve ter o mesmo nome de arquivo e o mesmo caminho de arquivo que o certificado que está substituindo.

    • Se estiver girando um TLS Certificate criptografado, sua senha deverá ser igual à senha do certificado antigo (conforme especificado na configuração do arquivo de configuração certificateKeyFilePassword). A rotação de certificados não oferece suporte ao prompt de senha interativo.

  2. Conecte mongosh à instância mongod ou mongos na qual você deseja executar a rotação de certificado.

  3. Execute o comando rotateCertificates ou o método de shell do db.rotateCertificates() para rotacionar os certificados utilizados pela instância do mongod ou mongos.

Quando ocorre a rotação de certificados:

  • As conexões existentes à instância mongod ou mongos não são encerradas e continuarão usando os certificados antigos.

  • Todas as novas conexões usarão os novos certificados.

Arquivos de certificados incorretos, expirados, revogados ou ausentes causarão falha na rotação de certificados, mas não invalidarão a configuração TLS existente nem encerrarão o processo mongod ou mongos em execução.

Antes do MongoDB 5.0, a rotação de certificados exigia tempo de inatividade e era normalmente realizada durante janelas de manutenção.

Consulte rotateCertificates ou db.rotateCertificates() para obter considerações adicionais e instruções de uso completas.

Observação

O TLS/SSL compatível com FIPS está disponível apenas no MongoDB Enterprise. Consulte Configurar MongoDB para FIPS para obter mais informações.

Consulte Configurar MongoDB para FIPS para obter mais detalhes.

Para configurar o suporte a TLS/SSL para clientes, consulte Configuração TLS/SSL para clientes.

Observação

O MongoDB apresenta configurações net.tls (e opções de linha de comando --tls ) que correspondem às configurações net.ssl (e opções de linha de comando --ssl ). As novas configurações tls fornecem funcionalidade idêntica às configurações ssl, já que o MongoDB sempre suportou o TLS 1.0 e mais tarde.

Os procedimentos nesta seção usam as configurações do net.ssl. Para procedimentos que usam os apelidos net.tls, consulte Procedimentos (usando configurações net.tls)..

A seção a seguir configura mongod / mongos para usar conexões TLS/SSL. Com essas configurações de TLS/SSL, mongod / mongos apresenta seu arquivo de chave de certificado ao cliente. No entanto, o mongod / mongos não exige um arquivo de chave do certificado do cliente para verificar a identidade do cliente. Para exigir o arquivo de chave do certificado do cliente, consulte Configurar mongod e mongos com a validação do certificado do cliente em vez disso.

Para usar conexões TLS/SSL, inclua as seguintes configurações de TLS/SSL em seu arquivo de configuração da instância mongod / mongos:

Contexto
Notas
net.ssl.mode

Defina como requireSSL.

Esta configuração restringe cada servidor a usar somente conexões criptografadas TLS/SSL. Você também pode especificar allowSSL ou preferSSL para usar os modos mistos TLS/SSL. Consulte net.ssl.mode para obter detalhes.

net.ssl.PEMKeyFile

Defina para o arquivo .pem que contém o certificado TLS/SSL e a chave.

A instância mongod / mongos apresenta este arquivo aos clientes para estabelecer a identidade da instância.

Se a chave estiver criptografada, especifique a senha (net.ssl.PEMKeyPassword).

Por exemplo, considere o seguinte arquivo de configuração para uma instância mongod:

net:
ssl:
mode: requireSSL
PEMKeyFile: /etc/ssl/mongodb.pem
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
dbPath: "/var/lib/mongodb"
processManagement:
fork: true
net:
bindIp: localhost,mongodb0.example.net
port: 27017

Você pode usar armazenamentos de certificados SSL do sistema para Windows e macOS. Para usar o armazenamento de certificados SSL do sistema, especifique net.ssl.certificateSelector em vez de especificar o arquivo de chave do certificado.

Contexto
Notas
net.ssl.mode

Defina como requireSSL.

Esta configuração restringe cada servidor a usar somente conexões criptografadas TLS/SSL. Você também pode especificar allowSSL ou preferSSL para usar os modos mistos TLS/SSL. Consulte net.ssl.mode para obter detalhes.

net.ssl.certificateSelector

Defina como a propriedade ( subject ou thumbprint) e valor.

Esta configuração é usada para selecionar o certificado. Consulte net.ssl.certificateSelector para detalhes.

Por exemplo, considere o seguinte arquivo de configuração para uma instância mongod:

net:
ssl:
mode: requireSSL
certificateSelector: subject="<CertificateCommonName>"
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
dbPath: "/var/lib/mongodb"
processManagement:
fork: true
net:
bindIp: localhost,mongodb0.example.net
port: 27017

Uma instância mongod que usa a configuração acima só pode aceitar conexões TLS/SSL:

mongod --config <path/to/configuration/file>

Consulte Conectar-se as instâncias do MongoDB usando criptografia para obter mais informações sobre como se conectar com TLS/SSL.

Dica

Veja também:

Você também pode configurar mongod e mongos usando opções de linha de comando em vez do arquivo de configuração:

  • Para mongod, consulte --sslMode, --sslPEMKeyFile e --sslCertificateSelector.

  • Para mongos, consulte: --sslMode, --sslPEMKeyFile e --sslCertificateSelector.

A seção a seguir configura mongod / mongos para usar conexões TLS/SSL e realizar a validação do certificado do cliente. Com estas configurações TLS/SSL:

  • mongod / mongos apresenta seu arquivo de chave de certificado para o cliente para verificação.

  • mongod / mongos requer um arquivo de chave de certificado do cliente para verificar a identidade do cliente.

Para usar conexões TLS/SSL, inclua as seguintes configurações de TLS/SSL em seu arquivo de configuração da instância mongod / mongos:

Observação

Você pode usar armazenamentos de certificados SSL do sistema para Windows e macOS. Para usar o armazenamento de certificados SSL do sistema, especifique net.ssl.certificateSelector em vez de especificar o arquivo de chave do certificado.

Contexto
Notas
net.ssl.mode

Defina como requireSSL.

Esta configuração restringe cada servidor a usar somente conexões criptografadas TLS/SSL. Você também pode especificar allowSSL ou preferSSL para usar os modos mistos TLS/SSL. Consulte net.ssl.mode para obter detalhes.

net.ssl.PEMKeyFile

Defina para o arquivo .pem que contém o certificado TLS/SSL e a chave.

A instância mongod / mongos apresenta este arquivo aos clientes para estabelecer a identidade da instância.

Se a chave estiver criptografada, especifique a senha (net.ssl.PEMKeyPassword).

net.ssl.CAFile

Defina como o caminho do arquivo que contém a cadeia de certificados para verificar certificados de cliente.

A instânciamongod / mongos utiliza este arquivo para verificar os certificados apresentados por seus clientes. A sequência de certificados inclui o certificado da autoridade de certificação raiz.

Por exemplo, considere o seguinte arquivo de configuração para uma instância mongod:

net:
ssl:
mode: requireSSL
PEMKeyFile: /etc/ssl/mongodb.pem
CAFile: /etc/ssl/caToValidateClientCertificates.pem
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
dbPath: "/var/lib/mongodb"
processManagement:
fork: true
net:
bindIp: localhost,mongodb0.example.net
port: 27017

Uma instância mongod que usa a configuração acima só pode aceitar conexões TLS/SSL e requer um certificado válido de seus clientes:

mongod --config <path/to/configuration/file>

Os clientes devem especificar conexões TLS/SSL e apresentar seu arquivo de chave de certificado à instância. Consulte Conectar-se a instâncias do MongoDB que exigem certificados de cliente para obter mais informações sobre como se conectar com TLS/SSL.

Dica

Veja também:

Você também pode configurar mongod e mongos usando opções de linha de comando em vez do arquivo de configuração:

  • Para mongod, consulte --sslMode, --sslPEMKeyFile e --sslCAFile.

  • Para mongos, consulte --sslMode, --sslPEMKeyFile e --sslCAFile.

Para impedir que clientes com certificados revogados se conectem à instância mongod ou mongos , você pode usar uma lista de revogação de certificados (CRL).

Para especificar um arquivo CRL, inclua net.ssl.CRLFile configurado para um arquivo que contém certificados revogados.

Por exemplo:

net:
ssl:
mode: requireSSL
PEMKeyFile: /etc/ssl/mongodb.pem
CAFile: /etc/ssl/caToValidateClientCertificates.pem
CRLFile: /etc/ssl/revokedCertificates.pem

Os clientes que apresentam certificados listados no arquivo /etc/ssl/revokedCertificates.pem não conseguem se conectar.

Dica

Veja também:

Você também pode configurar a lista de certificados revogados usando a opção de linha de comando.

  • Para o mongod, consulte --sslCRLFile.

  • Para o mongos, consulte --sslCRLFile.

Na maioria dos casos, é importante garantir que os clientes apresentem certificados válidos. No entanto, se você tiver clientes que não puderem apresentar um certificado de cliente ou estiverem fazendo a transição para o uso de um certificado, você só deverá validar certificados de clientes que apresentem um certificado.

Para ignorar a validação de certificado de cliente para clientes que não apresentam um certificado, inclua net.ssl.allowConnectionsWithoutCertificates definido como true.

Por exemplo:

net:
ssl:
mode: requireSSL
PEMKeyFile: /etc/ssl/mongodb.pem
CAFile: /etc/ssl/caToValidateClientCertificates.pem
allowConnectionsWithoutCertificates: true

Um mongod / mongos em execução com essas configurações permite a conexão de:

  • Clientes que não apresentam um certificado.

  • Clientes que apresentam um certificado válido.

Observação

Se o cliente apresentar um certificado, o certificado deverá ser um certificado válido.

Todas as conexões, incluindo aquelas que não apresentavam certificados, são criptografadas usando TLS/SSL.

Consulte Configuração TLS/SSL para clientes para obter mais informações sobre conexões TLS/SSL para clientes.

Dica

Veja também:

Você também pode configurar usando as opções de linha de comando:

  • Para o mongod, consulte --sslAllowConnectionsWithoutCertificates.

  • Para o mongos, consulte --sslAllowConnectionsWithoutCertificates.

Para evitar que os servidores do MongoDB aceitem conexões de entrada que usam protocolos específicos, inclua net.ssl.disabledProtocols definido como os protocolos não permitidos.

Por exemplo, a configuração a seguir impede que mongod / mongos aceite conexões recebidas que usem TLS1_0 ou TLS1_1

net:
ssl:
mode: requireSSL
PEMKeyFile: /etc/ssl/mongodb.pem
CAFile: /etc/ssl/caToValidateClientCertificates.pem
disabledProtocols: TLS1_0,TLS1_1

Dica

Veja também:

Você também pode configurar usando as opções de linha de comando:

  • Para o mongod, consulte --sslDisabledProtocols.

  • Para o mongos, consulte --sslDisabledProtocols.

Se os arquivos de chave de certificado para mongod / mongos estiverem criptografados, inclua net.ssl.PEMKeyPassword definido como a senha.

Dica

Veja também:

Você também pode configurar usando as opções de linha de comando:

  • Para o mongod, consulte sslPEMKeyPassword.

  • Para o mongos, consulte --sslPEMKeyPassword.

Observação

O TLS/SSL compatível com FIPS está disponível apenas no MongoDB Enterprise. Consulte Configurar MongoDB para FIPS para obter mais informações.

Consulte Configurar MongoDB para FIPS para obter mais detalhes.

Para configurar o suporte a TLS/SSL para clientes, consulte Configuração TLS/SSL para clientes.

Voltar

TLS/SSL