Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Interno
/ / / / /

Actualizar MongoDB autogestionado de la autenticación de archivo de claves a la autenticación x.509

Para actualizar los clústeres que están utilizando actualmente Para la autenticación del archivo de claves a509 la autenticación x., utilice los siguientes procesos de actualización continua.

Nota

MongoDB deshabilita el soporte para el cifrado TLS 1.0 en sistemas donde TLS 1.1+ está disponible.

Nota

MongoDB proporciona configuraciones net.tls (y opciones de línea de comandos --tls) que corresponden a las configuraciones net.ssl (y opciones de línea de comandos --ssl). La nueva configuración de tls proporciona una funcionalidad idéntica a la configuración de ssl, ya que MongoDB siempre ha sido compatible con TLS 1.0 y versiones posteriores.

Los procedimientos de esta sección utilizan los tls ajustes/opciones. Para los procedimientos que utilizan las configuraciones/opciones ssl, consulta Procedimientos de actualización (utilizando las opciones ssl).

Nota

El procedimiento utiliza la tls configuración/opciones. Para conocer los procedimientos que utilizan la ssl configuración/opciones, consulte Clústeres que actualmente usan TLS/SSL (Uso ssl de las opciones).

Para los clústeres que utilizan autenticación TLS/SSL y con archivos de claves, para actualizar a la autenticación de clúster x.509, utiliza el siguiente proceso de actualización progresiva:

  1. Para cada nodo de un clúster, agrega los siguientes ajustes al archivo de configuración y reinicia:

    • security.clusterAuthMode
      Establecer en sendKeyFile. Con este valor de configuración, cada nodo sigue enviando su keyfile para autenticarse como nodo. Sin embargo, cada nodo puede recibir un archivo clave o un certificado x.509 de otros miembros para autenticar a esos miembros.
    • net.tls.clusterFile
      Establézcalo en la ruta adecuada del archivo de clave del certificado del nodo para la autenticación de membresía. El mongod / mongos presenta este archivo a otros nodos del clúster para identificarse como un nodo.

    Incluye otras opciones TLS/SSL y cualquier otra opción según sea apropiado para tu configuración específica.

    Por ejemplo:

    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

    Actualiza todos los nodos del clúster para incluir la security.clusterAuthMode y la net.tls.clusterFile antes de continuar.

  2. Conéctese a cada nodo y utilice el comando setParameter para actualizar el clusterAuthMode a sendX509. [1]

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

    Con sendX509, cada nodo envía su net.tls.clusterFile para autenticarse como miembro. Sin embargo, cada nodo puede recibir un archivo clave o un certificado x.509 de otros miembros para autenticar a esos miembros.

    Actualiza todos los nodos del clúster a esta configuración antes de continuar.

  3. Opcional, pero recomendado. Finalmente, para cada nodo del clúster, conéctese al nodo y utilice el comando setParameter para actualizar el clusterAuthMode a x509 para usar únicamente el certificado x.509 para autenticación. [1]

    db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } )
  4. Después de la actualización de todos los nodos, edite el archivo de configuración con la configuración x.509 adecuada para garantizar que, en reinicios posteriores, el clúster use la autenticación x.509. Por ejemplo:

    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

Tip

También se puede configurar mongod y mongos usando opciones de línea de comandos en lugar del archivo de configuración:

Nota

El procedimiento utiliza las opciones tls. Para los procedimientos que utilizan la configuración/opciones de ssl, consulte Clústeres que actualmente no usan TLS/SSL (utilizando las opciones ssl).

Para clústeres que utilizan autenticación mediante keyfile pero no TLS/SSL, para actualizar a la autenticación de membrecía x.509 y conexiones TLS/SSL:

  1. Para cada nodo de un clúster, agrega los siguientes ajustes al archivo de configuración y reinicia:

    • net.tls.mode
      Establecer en allowTLS. Este valor permite que el nodo acepte conexiones entrantes que utilicen TLS/SSL y también aquellas que no utilicen TLS/SSL. Sus conexiones salientes no utilizan TLS/SSL.
    • net.tls.certificateKeyFile
      Establezca la ruta del archivo que contiene el certificado TLS/SSL y la clave. El mongod / mongos presenta este archivo a sus clientes para establecer la identidad de la instancia. Necesario cuando se utiliza TLS/SSL.
    • net.tls.clusterFile
      Establézcalo en la ruta adecuada del archivo de clave del certificado del nodo para la autenticación de membresía. El mongod / mongos presenta este archivo a otros nodos del clúster para identificarse como un nodo.
    • net.tls.CAFile
      Establecido en la ruta del archivo que contiene la cadena de certificados para verificar los certificados recibidos.
    • security.clusterAuthMode
      Establecer en sendKeyFile. Esto permite que cada nodo siga enviando su archivo clave para autenticarse como nodo. Sin embargo, cada nodo puede recibir un archivo clave o un certificado x.509 de otros miembros para autenticar a esos miembros.

    Incluye otras opciones TLS/SSL y cualquier otra opción según sea apropiado para tu configuración específica.

    Por ejemplo:

    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

    Actualice todos los nodos del clúster para incluir net.tls.mode, net.tls.certificateKeyFile, net.tls.clusterFile y security.clusterAuthMode.

  2. Conéctese a cada nodo y utilice el comando setParameter [1] para:

    1. Actualice tlsMode preferSSLa. Con tlsMode establecido preferTLS en, el nodo acepta conexiones entrantes TLS/SSL y no TLS/no SSL, y sus conexiones salientes usan TLS/SSL.

    2. Actualice el clusterAuthMode a sendX509. Con el clusterAuthMode configurado en sendX509, cada nodo envía su net.tls.clusterFile para autenticarse como nodo. Sin embargo, cada nodo sigue aceptando ya sea una clave o un certificado x.509 de otros miembros para autenticar a esos miembros.

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

    Actualiza todos los nodos del clúster a estos parámetros antes de continuar.

  3. Después de actualizar todos los nodos, edite el archivo de configuración con las configuraciones TLS/SSL y x.509 adecuadas para garantizar que en los reinicios posteriores, el clúster utilice la autenticación 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

    Nota

    En este punto,

    • Los nodos en el clúster usan conexiones TLS/SSL. Sin embargo, los nodos pueden aceptar conexiones que no sean TLS/SSL de aplicaciones cliente.

    • Los nodos envían sus certificados X.509 para la autenticación de membresía, pero pueden aceptar certificados X.509 o archivos de claves de otros nodos para verificar la membresía de otros nodos.

    Para imponer conexiones TLS/SSL desde aplicaciones cliente y aceptar únicamente x.509 para la autenticación de membresía, consulte el siguiente paso.

  4. Opcional, pero recomendado. Actualice todos los nodos para usar solo TLS/SSL conexiones y solo el certificado x.509 para la autenticación de membresía.

    Importante

    Este requisito de conexión TLS/SSL se aplica a todas las conexiones; es decir, tanto con los clientes como con los nodos del clúster. Es decir, los clientes deben especificar conexiones TLS/SSL y presentar su archivo de clave de certificado al conectarse al clúster. Consulta Conectar con instancias de MongoDB que requieren certificados de cliente para obtener más información sobre la conexión con TLS/SSL. Consultar también Validar solo si un cliente presenta un certificado.

    Actualiza el net.tls.mode a requireTLS y security.clusterAuthMode a x509.

    Por ejemplo:

    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

Tip

También se puede configurar mongod y mongos usando opciones de línea de comandos en lugar del archivo de configuración:

Nota

MongoDB proporciona configuraciones net.tls (y opciones de línea de comandos --tls) que corresponden a las configuraciones net.ssl (y opciones de línea de comandos --ssl). La nueva configuración de tls proporciona una funcionalidad idéntica a la configuración de ssl, ya que MongoDB siempre ha sido compatible con TLS 1.0 y versiones posteriores.

Los procedimientos de esta sección utilizan las opciones ssl. Para los procedimientos que utilizan las opciones tls, consulta Procedimientos de actualizar (usando las opciones tls).

Nota

El procedimiento utiliza las ssl opciones. Para conocer los procedimientos que utilizan las tls opciones, consulte Clústeres que actualmente utilizan TLS/SSL (Uso ssl de las opciones).

Para los clústeres que utilizan autenticación TLS/SSL y con archivos de claves, para actualizar a la autenticación de clúster x.509, utiliza el siguiente proceso de actualización progresiva:

  1. Para cada nodo de un clúster, inicia el nodo con la opción --clusterAuthMode establecida en sendKeyFile y la opción --sslClusterFile configurada en la ruta apropiada del certificado del nodo. Incluye otras opciones TLS/SSL así como cualquier otra opción que se requiera para tu configuración específica. Por ejemplo:

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

    Con esta configuración, cada nodo continúa utilizando su archivo de claves para autenticarse como nodo. Sin embargo, ahora cada nodo puede aceptar un archivo de claves o un certificado x.509 de otros nodos para autenticarlos. Actualice todos los nodos del clúster a esta configuración.

  2. Luego, para cada nodo de un clúster, conéctese al nodo y use el comando para setParameter actualizar clusterAuthMode sendX509a. [1] Por ejemplo,

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

    Con esta configuración, cada nodo usa su certificado x.509, especificado con la opción --sslClusterFile en el paso anterior, para autenticarse como miembro. Sin embargo, cada nodo sigue aceptando un archivo de claves o un certificado x.509 de otros miembros para autenticarse. Actualice todos los nodos del clúster a esta configuración.

  3. Opcional, pero recomendado. Por último, para cada nodo del clúster, conéctese al nodo y utilice el comando setParameter para actualizar el clusterAuthMode a x509 para utilizar únicamente el certificado x.509 para la autenticación. [1] Por ejemplo:

    db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } )
  4. Después de actualizar todos los nodos, edite el archivo de configuración con la configuración x.509 adecuada para garantizar que, tras los reinicios posteriores, el clúster utilice la autenticación x.509.

Consulta --clusterAuthMode para obtener información sobre los diferentes modos y sus descripciones.

Nota

El procedimiento utiliza las ssl opciones. Para conocer los procedimientos que utilizan las tls opciones, consulte Actualizar tls clústeres (con las opciones) mediante el archivo de claves, pero no con TLS/SSL.

Para los clústeres que utilizan autenticación mediante archivos clave pero no TLS/SSL, para actualizar a la autenticación x.509, utiliza el siguiente proceso de actualización continua:

  1. Para cada nodo de un clúster, inicia el nodo con la opción --sslMode configurada en allowSSL, la opción --clusterAuthMode configurada en sendKeyFile y la opción --sslClusterFile configurada en la ruta adecuada del certificado del nodo. Incluya otras opciones TLS/SSL así como otras opciones que sean necesarias para su configuración específica. Por ejemplo:

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

    La configuración --sslMode allowSSL permite que el nodo acepte tanto conexiones entrantes TLS/SSL como no TLS/no SSL. Las conexiones salientes del nodo no usan TLS/SSL.

    La configuración permite que cada nodo siga usando su archivo de claves para autenticarse como miembro. Sin embargo, ahora cada nodo puede aceptar un archivo de claves o un certificado x.509 de otros miembros para --clusterAuthMode sendKeyFile autenticarse.

    Actualice todos los nodos del clúster a estas configuraciones.

  2. Luego, para cada nodo de un clúster, conecta al nodo y utiliza el comando setParameter para actualizar el sslMode a preferSSL y el clusterAuthMode a sendX509. [1] Por ejemplo:

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

    Con el sslMode configurado en preferSSL, el nodo acepta tanto conexiones entrantes TLS/SSL como conexiones no TLS/no SSL, y sus conexiones salientes utilizan TLS/SSL.

    Con clusterAuthMode establecido sendX509 en, cada nodo usa su509 certificado x., especificado con la --sslClusterFile opción en el paso anterior, para autenticarse como miembro. Sin embargo, cada nodo sigue aceptando un archivo de claves o un509 certificado x. de otros miembros para autenticarse.

    Actualice todos los nodos del clúster a estas configuraciones.

  3. Opcional, pero recomendado. Finalmente, para cada nodo del clúster, conecte al nodo y utilice el comando setParameter para actualizar el sslMode a requireSSL y el clusterAuthMode a x509. [1] Por ejemplo:

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

    Con sslMode establecido requireSSL en, el nodo solo usa conexiones TLS/SSL.

    Con el clusterAuthMode configurado en x509, el nodo utiliza solamente el certificado x.509 para la autenticación.

  4. Después de actualizar todos los nodos, edite el archivo de configuración con las configuraciones TLS/SSL y x.509 adecuadas para garantizar que en los reinicios posteriores, el clúster utilice la autenticación x.509.

Consulta --clusterAuthMode para obtener información sobre los diferentes modos y sus descripciones.

[1](1, 2, 3, 4, 5, 6, 7) Como alternativa al uso del comando setParameter, también puedes reiniciar los nodos con las opciones y valores x509 y TLS/SSL apropiados.

Volver

Utilice X.509

En esta página