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

Atualize o MongoDB autogerenciado da autenticação Keyfile para x.509 Autenticação

Nesta página

  • Procedimentos de atualização (usando opções tls )
  • Procedimentos de atualização (usando opções ssl )

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.

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 ).

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:

  1. 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 e net.tls.clusterFile antes de continuar.

  2. Conecte a cada nó e utilize o comando setParameter para atualizar o clusterAuthMode para sendX509. [1]

    db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } )

    Com sendX509, cada nó envia seu net.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.

  3. Opcional, mas recomendado. Finalmente, para cada nó do cluster, conecte-se ao nó e use o comando setParameter para atualizar o clusterAuthMode para x509 para usar somente o certificado x.509 para autenticação. [1]

    db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } )
  4. 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:

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:

  1. 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 e security.clusterAuthMode.

  2. Conecte a cada nó e use o comando setParameter [1] para:

    1. Atualize o tlsMode para preferSSL. Com o tlsMode definido como preferTLS, o nó aceita conexões de entrada TLS/SSL e não TLS/SSL, e suas conexões de saída usam TLS/SSL.

    2. Atualize o clusterAuthMode para sendX509. Com o clusterAuthMode definido como sendX509, cada nó envia seu net.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.

  3. 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.

  4. 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 para requireTLS e security.clusterAuthMode para x509.

    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:

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 ).

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:

  1. Para cada nó de um cluster, inicie o nó com a opção --clusterAuthMode definida como sendKeyFile 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.

  2. Em seguida, para cada nó de um cluster, conecte-se ao nó e use o comando setParameter para atualizar o clusterAuthMode para sendX509. [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.

  3. Opcional, mas recomendado. Finalmente, para cada nó do cluster, conecte-se ao nó e use o comando setParameter para atualizar o clusterAuthMode para x509 para usar somente o certificado x.509 para autenticação. [1] Por exemplo:

    db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } )
  4. 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.

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:

  1. Para cada nó de um cluster, inicie o nó com a opção --sslMode definida como allowSSL, a opção --clusterAuthMode definida como sendKeyFile 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.

  2. Em seguida, para cada nó de um cluster, conecte-se ao nó e use o comando setParameter para atualizar sslMode para preferSSL e clusterAuthMode para sendX509. [1] Por exemplo:

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

    Com o sslMode definido como preferSSL, 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 para sendX509, 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.

  3. Opcional, mas recomendado. Finally, for each node of the cluster, connect to the node and use the setParameter command to update the sslMode to requireSSL and the clusterAuthMode to x509. [1] Por exemplo:

    db.adminCommand( { setParameter: 1, sslMode: "requireSSL", clusterAuthMode: "x509" } )

    Com o sslMode configurado para requireSSL, o nó utiliza somente conexões TLS/SSLs.

    Com o clusterAuthMode configurado para x509, o nó utiliza somente o certificado x.509 para autenticação.

  4. 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.

Voltar

Use x.509