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

Atualizar um cluster para usar TLS/SSL

O servidor MongoDB oferece suporte ao listening para conexões criptografadas e não criptografadas TLS/SSL na mesma porta TCP. Isso permite atualizações de clusters MongoDB para usar conexões criptografadas TLS/SSL.

Observação

O MongoDB desabilita o suporte para criptografia TLS 1.0 em sistemas em que 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.

Para atualizar de um cluster MongoDB usando nenhuma criptografia TLS/SSL para um usando apenas criptografia TLS/SSL, use o seguinte processo de atualização contínua.

Observação

Os procedimentos nesta seção usam as configurações/opção do tls . Para procedimentos que usam seus aliases ssl , consulte Procedimento (usando configurações ssl ).

As configurações/opções tls oferecem funcionalidade idêntica à das opções ssl, pois o MongoDB sempre foi compatível com o TLS 1.0 e posterior.

  1. Para cada nó de um cluster, inicie o nó com a opção --tlsMode da linha de comando ou a opção net.tls.mode do arquivo de configuração como allowTLS. A configuração allowTLS permite que o nó aceite conexões de entrada TLS/SSL e não TLS/SSL. Suas conexões com outros servidores não usam TLS/SSL. Inclua outras opções TLS/SSL [2] , bem como quaisquer outras opções necessárias para sua configuração específica.

    Observação

    mongod e mongos se vinculam ao localhost por padrão. Se os membros do sistema forem executados em hosts diferentes, ou se você desejar que os clientes remotos se conectem ao sistema, especifique --bind_ip ou net.bindIp.

    Por exemplo:

    mongod --replSet <name> --tlsMode allowTLS --tlsCertificateKeyFile <TLS/SSL certificate and key file> --tlsCAFile <path to root CA PEM file> <additional options>

    Para especificar estas opções no arquivo de configuração, inclua as seguintes configurações no arquivo:

    net:
    tls:
    mode: allowTLS
    certificateKeyFile: <path to TLS/SSL certificate and key PEM file>
    CAFile: <path to root CA PEM file>

    Atualize todos os nós do cluster para essas configurações.

  2. Mude todos os clientes para usar TLS/SSL. Consulte Configuração TLS/SSL para clientes.

  3. Para cada nó de um cluster, utilize o comando setParameter para atualizar o tlsMode para preferTLS. [1] Com o preferTLS como seu net.tls.mode, o nó aceita conexões de entrada TLS/SSL e não TLS/não SSL, e suas conexões com outros servidores usam TLS/SSL. Por exemplo:

    db.adminCommand( { setParameter: 1, tlsMode: "preferTLS" } )

    Atualize todos os nós do cluster para essas configurações.

    Neste ponto, todas as conexões devem estar usando TLS/SSL.

  4. Para cada nó do cluster, utilize o comando setParameter para atualizar o tlsMode para requireTLS. [1] Com requireTLS como seu net.tls.mode, o nó rejeitará todas as conexões não TLS/não SSL. Por exemplo:

    db.adminCommand( { setParameter: 1, tlsMode: "requireTLS" } )
  5. Após a atualização de todos os nós, edite o arquivo de configuração com as configurações TLS/SSL apropriadas para garantir que, após a reinicialização subsequente, o cluster use 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 atualizar de um cluster MongoDB usando nenhuma criptografia TLS/SSL para um usando apenas criptografia TLS/SSL, use o seguinte processo de atualização contínua.

Observação

Os procedimentos nesta seção usam as configurações/opção do ssl. Nos procedimentos que usam seus aliases tls, consulte Procedimento (usando configurações tls).

As configurações/opções tls oferecem funcionalidade idêntica à das opções ssl, pois o MongoDB sempre foi compatível com o TLS 1.0 e posterior.

  1. Para cada nó de um cluster, inicie o nó com a opção --sslMode da linha de comando ou a opção net.ssl.mode do arquivo de configuração definida como allowSSL. A configuração allowSSL permite que o nó aceite conexões de entrada TLS/SSL e não TLS/SSL. Suas conexões com outros servidores não usam TLS/SSL. Inclua outras opções TLS/SSL [2] , bem como quaisquer outras opções necessárias para sua configuração específica.

    Observação

    mongod e mongos se vinculam ao localhost por padrão. Se os membros do sistema forem executados em hosts diferentes, ou se você desejar que os clientes remotos se conectem ao sistema, especifique --bind_ip ou net.bindIp.

    Por exemplo:

    mongod --replSet <name> --sslMode allowSSL --sslPEMKeyFile <path to TLS/SSL Certificate and key PEM file> --sslCAFile <path to root CA PEM file> <additional options>

    Para especificar estas opções no arquivo de configuração, inclua as seguintes configurações no arquivo:

    net:
    ssl:
    mode: <allowSSL>
    PEMKeyFile: <path to TLS/SSL certificate and key PEM file>
    CAFile: <path to root CA PEM file>

    Atualize todos os nós do cluster para essas configurações.

  2. Mude todos os clientes para usar TLS/SSL. Consulte Configuração TLS/SSL para clientes.

  3. Em cada nó de um cluster, utilize o comando setParameter para atualizar o sslMode para preferSSL. [1] Com preferSSL como net.ssl.mode, o nó aceita conexões de entrada TLS/SSL e não TLS/não SSL, e suas conexões com outros servidores usam TLS/SSL. Por exemplo:

    db.adminCommand( { setParameter: 1, sslMode: "preferSSL" } )

    Atualize todos os nós do cluster para essas configurações.

    Neste ponto, todas as conexões devem estar usando TLS/SSL.

  4. Para cada nó do cluster, utilize o comando setParameter para atualizar o sslMode para requireSSL. [1] Com requireSSL como seu net.ssl.mode, o nó rejeita todas as conexões não TLS/não SSL. Por exemplo:

    db.adminCommand( { setParameter: 1, sslMode: "requireSSL" } )
  5. Após a atualização de todos os nós, edite o arquivo de configuração com as configurações TLS/SSL apropriadas para garantir que, após a reinicialização subsequente, o cluster use TLS/SSL.

[1](1, 2, 3, 4) Como uma alternativa para utilizar o comando setParameter, você também pode reiniciar os nós com as opções e valores TLS/SSL apropriados.
[2](1, 2) Você pode usar armazenamentos de certificados SSL do sistema para Windows e macOS. Para usar o armazenamento de certificados SSL do sistema, use:
  • net.tls.certificateSelector (ou a opção de linha de comando --tlsCertificateSelector) em vez de net.tls.certificateKeyFile (ou a opção de linha de comando ''--certificateKeyFile'').
  • net.ssl.certificateSelector (ou a opção de linha de comando --sslCertificateSelector) em vez de net.ssl.PEMKeyFile (ou a opção de linha de comando ''--sslPEMKeyFile'').
Ao usar o armazenamento de certificados SSL do sistema, o OCSP (Online Certificate Status Protocol) é usado para validar o status de revogação dos certificados.

Voltar

Configurar clientes