Atualize o MongoDB autogerenciado da autenticação Keyfile para x.509 Autenticação
Nesta página
Para atualizar os clusters que estão usando atualmente aautenticação de arquivo de chave para x. Autenticação do 509 , use os seguintes processos de atualização contínua.
Observação
O MongoDB desabilita o suporte para criptografia TLS 1.0 em sistemas em que o TLS 1.1+ está disponível.
Procedimentos tls
de atualização (usando opções)
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/opções do tls
. Para procedimentos usando as configurações/opções ssl
, consulte Procedimentos de atualização (usando opções ssl
).
Atualizar (usando tls
opções) clusters usando TLS/SSL e arquivo de chave
Observação
O procedimento usa as configurações/opções do tls
. Para procedimentos usando as configurações/opções ssl
, consulte Clusters que usam atualmente TLS/SSL (usando opções ssl
).
Para clusters que usam autenticação TLS/SSL e keyfile, para atualizar para a autenticação de cluster x.509, use o seguinte processo de atualização contínua:
Para cada membro de um cluster, adicione as seguintes configurações ao arquivo de configuração e reinicie:
security.clusterAuthMode
- Defina como
sendKeyFile
. Com esse valor de configuração, cada nó continua enviando seu arquivo-chave para se autenticar como membro. No entanto, cada nó pode receber um arquivo de chave ou um certificado x.509 de outros membros para autenticar esses membros.
net.tls.clusterFile
- Defina como o caminho apropriado do arquivo de chave de certificado do nó para autenticação de associação. O
mongod
/mongos
apresenta este arquivo a outros membros do cluster para se identificar como um membro.
Inclua outras opções de TLS/SSL e quaisquer outras opções conforme apropriado para sua configuração específica.
Por exemplo:
net: tls: mode: requireTLS certificateKeyFile: /etc/ssl/mongodb.pem CAFile: /etc/ssl/caToValidateReceivedCertificates.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem" security: clusterAuthMode: sendKeyFile keyFile: /my/securely/located/membershipkey replication: replSetName: myReplicaSet net: bindIp: localhost,mongodb0.example.net port: 27017 systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true Atualize todos os nós do cluster para incluir as configurações
security.clusterAuthMode
enet.tls.clusterFile
antes de continuar.Conecte a cada nó e utilize o comando
setParameter
para atualizar oclusterAuthMode
parasendX509
. [1]db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } ) Com
sendX509
, cada nó envia seunet.tls.clusterFile
para se autenticar como um membro. No entanto, cada nó pode receber um arquivo de chave ou um certificado x.509 de outros membros para autenticar esses membros.Atualize todos os nós do cluster para essa configuração antes de continuar.
Opcional, mas recomendado. Finalmente, para cada nó do cluster, conecte-se ao nó e use o comando
setParameter
para atualizar oclusterAuthMode
parax509
para usar somente o certificado x.509 para autenticação. [1]db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } ) Após a atualização de todos os nós, edite o arquivo de configuração com as configurações x.509 apropriadas para garantir que, após a reinicialização subsequente, o cluster use a autenticação x.509. Por exemplo:
net: tls: mode: requireTLS certificateKeyFile: /etc/ssl/mongodb.pem CAFile: /etc/ssl/caToValidateReceivedCertificates.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem" security.clusterAuthMode: x509 replication: replSetName: myReplicaSet net: bindIp: localhost,mongodb0.example.net port: 27017 systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true
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: ---tlsMode
---tlsCertificateKeyFile
---tlsCAFile
---tlsClusterFile
---clusterAuthMode
Para
mongos
, consulte: ---tlsMode
---tlsCertificateKeyFile
---tlsCAFile
---tlsClusterFile
---clusterAuthMode
Atualizar (usando tls
opções) clusters usando keyfile, mas não TLS/SSL
Observação
O procedimento utiliza as opções do tls
. Para procedimentos que usam as configurações/opções ssl
, consulte Os clusters que atualmente não usam TLS/SSL (usando opções ssl
).
Para clusters que usam autenticação de keyfiles, mas não TLS/SSL, para atualizar para autenticação de associação x.509 e conexões TLS/SSL:
Para cada membro de um cluster, adicione as seguintes configurações ao arquivo de configuração e reinicie:
net.tls.mode
- Defina como
allowTLS
. Esse valor permite que o nó aceite conexões de entrada TLS/SSL e não TLS/SSL. Suas conexões de saída não usam TLS/SSL.
net.tls.certificateKeyFile
- Defina para o caminho do arquivo que contém o certificado TLS/SSL e a chave. O
mongod
/mongos
apresenta este arquivo aos seus clientes para estabelecer a identidade da instância. Obrigatório ao usar TLS/SSL.
net.tls.clusterFile
- Defina como o caminho apropriado do arquivo de chave de certificado do nó para autenticação de associação. O
mongod
/mongos
apresenta este arquivo a outros membros do cluster para se identificar como um membro.
net.tls.CAFile
- Defina como o caminho do arquivo que contém a sequência de certificados para verificar os certificados recebidos.
security.clusterAuthMode
- Defina como
sendKeyFile
. Isso permite que cada nó continue enviando seu arquivo-chave para se autenticar como membro. No entanto, cada nó pode receber um arquivo de chave ou um certificado x.509 de outros membros para autenticar esses membros.
Inclua outras opções de TLS/SSL e quaisquer outras opções conforme apropriado para sua configuração específica.
Por exemplo:
net: tls: mode: allowTLS certificateKeyFile: /etc/ssl/mongodb.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem" CAFile: /etc/ssl/caToValidateReceivedCertificates.pem security: clusterAuthMode: sendKeyFile keyFile: /my/securely/located/membershipkey replication: replSetName: myReplicaSet net: bindIp: localhost,mongodb0.example.net port: 27017 systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true Atualize todos os nós do cluster para incluir
net.tls.mode
,net.tls.certificateKeyFile
,net.tls.clusterFile
esecurity.clusterAuthMode
.Conecte a cada nó e use o comando
setParameter
[1] para:Atualize o
tlsMode
parapreferSSL
. Com otlsMode
definido comopreferTLS
, o nó aceita conexões de entrada TLS/SSL e não TLS/SSL, e suas conexões de saída usam TLS/SSL.Atualize o
clusterAuthMode
parasendX509
. Com oclusterAuthMode
definido comosendX509
, cada nó envia seunet.tls.clusterFile
para se autenticar como membro. No entanto, cada nó continua a aceitar um arquivo de chave ou um certificado x.509 de outros membros para autenticar esses membros.
db.adminCommand( { setParameter: 1, tlsMode: "preferTLS" } ); db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } ); Atualize todos os nós do cluster para essas configurações antes de continuar.
Após a atualização de todos os nós, edite o arquivo de configuração com as configurações TLS/SSL e x.509 apropriadas para garantir que, após a reinicialização subsequente, o cluster use a autenticação x.509.
net: tls: mode: preferTLS certificateKeyFile: /etc/ssl/mongodb.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem" CAFile: /etc/ssl/caToValidateReceivedCertificates.pem security: clusterAuthMode: sendX509 replication: replSetName: myReplicaSet net: bindIp: localhost,mongodb0.example.net port: 27017 systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true Observação
Neste ponto,
Os nós no cluster usam conexões TLS/SSL. No entanto, os nós podem aceitar conexões não TLS/SSL de aplicativos cliente.
Os nós enviam seus certificados x.509 para autenticação de associação, mas podem aceitar certificados x.509 ou arquivos-chave de outros nós para verificar a associação dos outros nós.
Para impor conexões TLS/SSL a partir de aplicativos clientes, bem como aceitar apenas x.509 para autenticação de associação, consulte a próxima etapa.
Opcional, mas recomendado. Atualize todos os nós para usar somente conexões
TLS/SSL
e somente certificado x.509 para autenticação de associação.Importante
Esse requisito de conexão TLS/SSL se aplica a todas as conexões; ou seja, com os clientes e também com os membros do cluster. Ou seja, os clientes devem especificar conexões TLS/SSL e apresentar seu arquivo de chave de certificado ao se conectar ao cluster. 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. Consulte também Validar somente se um cliente apresentar um certificado.
Atualize o
net.tls.mode
pararequireTLS
esecurity.clusterAuthMode
parax509
.Por exemplo:
net: tls: mode: requireTLS certificateKeyFile: /etc/ssl/mongodb.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem" CAFile: /etc/ssl/caToValidateReceivedCertificates.pem security: clusterAuthMode: x509 replication: replSetName: myReplicaSet net: bindIp: localhost,mongodb0.example.net port: 27017 systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true
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: ---tlsMode
---tlsCertificateKeyFile
---tlsCAFile
---tlsClusterFile
---clusterAuthMode
Para
mongos
, consulte: ---tlsMode
---tlsCertificateKeyFile
---tlsCAFile
---tlsClusterFile
---clusterAuthMode
Procedimentos ssl
de atualização (usando opções)
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 opções do ssl
. Para procedimentos que usam as opções tls
, consulte Procedimentos de atualização (usando opções tls
).
Clusters que usam atualmente TLS/SSL (usando ssl
opções)
Observação
O procedimento utiliza as opções do ssl
. Para procedimentos que usam as opções tls
, consulte Clusters que usam atualmente TLS/SSL (Usando opções ssl
).
Para clusters que usam autenticação TLS/SSL e keyfile, para atualizar para a autenticação de cluster x.509, use o seguinte processo de atualização contínua:
Para cada nó de um cluster, inicie o nó com a opção
--clusterAuthMode
definida comosendKeyFile
e a opção--sslClusterFile
definida como o caminho apropriado do certificado do nó. Inclua outras opções TLS/SSL , bem como quaisquer outras opções necessárias para sua configuração específica. Por exemplo:mongod --replSet <name> --sslMode requireSSL --clusterAuthMode sendKeyFile --sslClusterFile <path to membership certificate and key PEM file> --sslPEMKeyFile <path to TLS/SSL Certificate and key PEM file> --sslCAFile <path to root CA PEM file> --bind_ip localhost,<hostname(s)|ip address(es)> Com essa configuração, cada nó continua usando seu arquivo-chave para se autenticar como membro. No entanto, cada nó agora pode aceitar um arquivo-chave ou um certificado x.509 de outros membros para autenticar esses membros. Atualize todos os nós do cluster para esta configuração.
Em seguida, para cada nó de um cluster, conecte-se ao nó e use o comando
setParameter
para atualizar oclusterAuthMode
parasendX509
. [1] Por exemplo,db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } ) Com essa configuração, cada nó usa seu x.509 , especificado com a opção
--sslClusterFile
na etapa anterior, para se autenticar como membro. No entanto, cada nó continua aceitando um arquivo de chave ou um x.509 de outros membros para autenticar esses membros. Atualize todos os nós do cluster para esta configuração.Opcional, mas recomendado. Finalmente, para cada nó do cluster, conecte-se ao nó e use o comando
setParameter
para atualizar oclusterAuthMode
parax509
para usar somente o certificado x.509 para autenticação. [1] Por exemplo:db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } ) Após a atualização de todos os nós, edite o arquivo de configuração com as configurações x.509 apropriadas para garantir que, após a reinicialização subsequente, o cluster use a autenticação x.509.
Consulte --clusterAuthMode
para os vários modos e suas descrições.
Clusters que atualmente não usam TLS/SSL (usando ssl
opções)
Observação
O procedimento utiliza as opções do ssl
. Para procedimentos que usam as opções tls
, consulte Atualizar (usando opções tls
) clusters usando um arquivo-chave, mas não TLS/SSL.
Para clusters que usam autenticação de keyfiles, mas não TLS/SSL, para atualizar para a autenticação x.509, use o seguinte processo de atualização contínua:
Para cada nó de um cluster, inicie o nó com a opção
--sslMode
definida comoallowSSL
, a opção--clusterAuthMode
definida comosendKeyFile
e a opção--sslClusterFile
definida como o caminho apropriado do certificado do nó. Inclua outras opções TLS/SSL , bem como quaisquer outras opções necessárias para sua configuração específica. Por exemplo:mongod --replSet <name> --sslMode allowSSL --clusterAuthMode sendKeyFile --sslClusterFile <path to membership certificate and key PEM file> --sslPEMKeyFile <path to TLS/SSL certificate and key PEM file> --sslCAFile <path to root CA PEM file> --bind_ip localhost,<hostname(s)|ip address(es)> A configuração
--sslMode allowSSL
permite que o nó aceite conexões de entrada TLS/SSL e não TLS/SSL. As conexões de saída do nó não usam TLS/SSL.A configuração
--clusterAuthMode sendKeyFile
permite que cada nó continue usando seu arquivo-chave para se autenticar como um membro. No entanto, cada nó agora pode aceitar um arquivo-chave ou um certificado x.509 de outros membros para autenticar esses membros.Atualize todos os nós do cluster para essas configurações.
Em seguida, para cada nó de um cluster, conecte-se ao nó e use o comando
setParameter
para atualizarsslMode
parapreferSSL
eclusterAuthMode
parasendX509
. [1] Por exemplo:db.adminCommand( { setParameter: 1, sslMode: "preferSSL", clusterAuthMode: "sendX509" } ) Com o
sslMode
definido comopreferSSL
, o nó aceita conexões de entrada TLS/SSL e não TLS/SSL, e suas conexões de saída usam TLS/SSL.Com o
clusterAuthMode
configurado parasendX509
, cada nó utiliza seu x.509 , especificado com a opção--sslClusterFile
na etapa anterior, para se autenticar como membro. No entanto, cada nó continua aceitando um arquivo de chave ou um x.509 certificado de outros membros para autenticar esses membros.Atualize todos os nós do cluster para essas configurações.
Opcional, mas recomendado. Finally, for each node of the cluster, connect to the node and use the
setParameter
command to update thesslMode
torequireSSL
and theclusterAuthMode
tox509
. [1] Por exemplo:db.adminCommand( { setParameter: 1, sslMode: "requireSSL", clusterAuthMode: "x509" } ) Com o
sslMode
configurado pararequireSSL
, o nó utiliza somente conexões TLS/SSLs.Com o
clusterAuthMode
configurado parax509
, o nó utiliza somente o certificado x.509 para autenticação.Após a atualização de todos os nós, edite o arquivo de configuração com as configurações TLS/SSL e x.509 apropriadas para garantir que, após a reinicialização subsequente, o cluster use a autenticação x.509.
Consulte --clusterAuthMode
para os vários modos e suas descrições.
[1] | (1, 2, 3, 4, 5, 6, 7) Como alternativa ao uso do comando setParameter , você também pode reiniciar os nós com as opções e valores apropriados de TLS/SSL e x509. |