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.
Procedimento (usando configurações tls
)
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.
Para cada nó de um cluster, inicie o nó com a opção
--tlsMode
da linha de comando ou a opçãonet.tls.mode
do arquivo de configuração comoallowTLS
. A configuraçãoallowTLS
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
emongos
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
ounet.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.
Mude todos os clientes para usar TLS/SSL. Consulte Configuração TLS/SSL para clientes.
Para cada nó de um cluster, utilize o comando
setParameter
para atualizar otlsMode
parapreferTLS
. [1] Com opreferTLS
como 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
setParameter
para atualizar otlsMode
pararequireTLS
. [1] ComrequireTLS
como 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 configurações 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.
Para cada nó de um cluster, inicie o nó com a opção
--sslMode
da linha de comando ou a opçãonet.ssl.mode
do arquivo de configuração definida comoallowSSL
. A configuraçãoallowSSL
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
emongos
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
ounet.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
setParameter
para atualizar osslMode
parapreferSSL
. [1] CompreferSSL
comonet.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
setParameter
para atualizar osslMode
pararequireSSL
. [1] ComrequireSSL
como 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:
|