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.
Procedimento (usando tls configurações)
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. Nos 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.
Para cada nó de um cluster, inicie o nó com a opção
--tlsModeda linha de comando ou a opçãonet.tls.modedo arquivo de configuração comoallowTLS. A configuraçãoallowTLSpermite 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
mongodemongosse 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_ipounet.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 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.
Mude todos os clientes para usar TLS/SSL. Consulte Configuração TLS/SSL para clientes.
Para cada nó de um cluster, utilize o comando
setParameterpara atualizar otlsModeparapreferTLS. [1] Com opreferTLScomo seunet.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.
Para cada nó do cluster, utilize o comando
setParameterpara atualizar otlsModepararequireTLS. [1] ComrequireTLScomo seunet.tls.mode, o nó rejeitará todas as conexões não TLS/não SSL. Por exemplo:db.adminCommand( { setParameter: 1, tlsMode: "requireTLS" } ) 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.
Procedimento (usando ssl configurações)
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.
Para cada nó de um cluster, inicie o nó com a opção
--sslModeda linha de comando ou a opçãonet.ssl.modedo arquivo de configuração definida comoallowSSL. A configuraçãoallowSSLpermite 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
mongodemongosse 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_ipounet.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.
Mude todos os clientes para usar TLS/SSL. Consulte Configuração TLS/SSL para clientes.
Em cada nó de um cluster, utilize o comando
setParameterpara atualizar osslModeparapreferSSL. [1] CompreferSSLcomonet.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.
Para cada nó do cluster, utilize o comando
setParameterpara atualizar osslModepararequireSSL. [1] ComrequireSSLcomo seunet.ssl.mode, o nó rejeita todas as conexões não TLS/não SSL. Por exemplo:db.adminCommand( { setParameter: 1, sslMode: "requireSSL" } ) 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:
|