Docs Menu
Docs Home
/ /
Interno
/ / / / /

Actualización continua de certificados X.509 que contienen un nuevo DN en clústeres autoadministrados

Los miembros de un conjunto de réplicas o un clúster fragmentado pueden usar X.509 certificados para autenticación de membresía para identificar otros servidores en la misma implementación.

Cuando un nodo de servidor recibe una solicitud de conexión, compara los atributos de nombre distinguido (DN) en la subject El campo "O" de los certificados presentados se corresponde con los atributos DN del sujeto de sus propios certificados. Los certificados coinciden si sus sujetos contienen los mismos valores para los atributos Organización (), Unidad Organizativa (OU) y Componente de Dominio (DC). El archivo de configuración de un servidor también puede especificar atributos DN alternativos para la coincidencia en el parámetrotlsX509ClusterAuthDNOverride. Si los atributos DN del sujeto del servidor o el valortlsX509ClusterAuthDNOverrideconfigurado coinciden con los atributos DN del sujeto del certificado presentado, el nodo del servidor trata la conexión como un miembro del clúster.

En algunas situaciones, podría ser necesario actualizar los certificados de miembro a nuevos certificados con nuevos atributos de Nombre Distinguido (DN) del sujeto, por ejemplo, si una organización cambia de nombre. En una actualización continua, los certificados de miembro se actualizan uno a uno y la implementación no genera tiempo de inactividad.

Los clústeres que adopten nuevos certificados pueden usar el parámetro para aceptar tlsX509ClusterAuthDNOverride x.509 certificados con diferentes atributos de DN de sujeto durante el proceso de rotación de certificados. Una vez que todos los miembros usen certificados con el nuevo valor, elimine la anulación para comenzar a rechazar los certificados obsoletos.

Considere un conjunto de réplicas donde los certificados X. de cada509 miembro, configurados utilizando las configuraciones y, tienen atributos DN de clusterFile certificateKeyFile sujeto "OU=10gen Server,O=10gen" de.

Un nodo de este set de réplicas tiene el siguiente archivo de configuración:

net.tls.mode: requireTLS
net.tls.certificateKeyFile: "./mycerts/10gen-server1.pem"
net.tls.CAFile: "./mycerts/ca.pem"
security.clusterAuthMode: x509
net.tls.clusterFile: "./mycerts/10gen-cluster1.pem"
net.tls.clusterCAFile: "./mycerts/ca.pem"

El siguiente procedimiento actualiza los certificados de cada miembro a nuevos certificados que tienen atributos DN de sujeto de "OU=MongoDB Server, O=MongoDB".

Nota

El siguiente procedimiento presupone que los nuevos509 certificados X. cumplen con los requisitos de certificado de membresía y demás requisitos, y que la configuración del clúster identifica los certificados de pares mediante valores de nombre distinguido (DN). Para obtener más información, consulte Requisitos de certificados de miembro.

1

Durante una actualización continua, los miembros se reinician uno a uno con una nueva configuración. Para que los nodos de servidor con los antiguos atributos de DN de sujeto identifiquen a los nodos con los nuevos atributos de DN de sujeto como miembros del clúster, configure el parámetro de anulación con los nuevos atributos de DN de sujeto en todos los miembros en ejecución.

Para ello, modifique el archivo de configuración de cada servidor para establecer el parámetro para utilizar los atributos DN del sujeto del nuevo tlsX509ClusterAuthDNOverride certificado:

net.tls.mode: requireTLS
net.tls.certificateKeyFile: "./mycerts/10gen-server1.pem"
net.tls.CAFile: "./mycerts/ca.pem"
security.clusterAuthMode: x509
net.tls.clusterFile: "./mycerts/10gen-cluster1.pem"
net.tls.clusterCAFile: "./mycerts/ca.pem"
setParameter:
tlsX509ClusterAuthDNOverride: "OU=MongoDB Server,O=MongoDB"

Esta configuración no se tendrá en cuenta hasta que reinicie cada miembro.

2

Para realizar un reinicio en secuencia de todos los miembros, reinicia cada secundario y luego el primario.

Por cada miembro secundario, conecta mongosh al nodo y, a continuación:

  1. Utilice el método para cerrar el db.shutdownServer() miembro:

    use admin
    db.shutdownServer()
  2. Reinicia el nodo.

    Antes de reiniciar el siguiente secundario, asegúrese de que este miembro haya alcanzado SECONDARY el estado. Para determinar el estado del miembro, ejecute y lea el valor rs.status() del stateStr campo.

    rs.status().members

Para el miembro principal, conecta mongosh al nodo y luego:

  1. Utilice para reducir el rs.stepDown() miembro:

    rs.stepDown()
  2. Utilice el método para cerrar el db.shutdownServer() miembro:

    use admin
    db.shutdownServer()
  3. Reinicia el nodo.

Todos los servidores en el conjunto de réplicas ahora pueden usar el parámetro de anulación para aceptar conexiones de pares de miembros que usan certificados con los nuevos atributos DN del sujeto.

3

Actualice el archivo de configuración de cada servidor:

Por ejemplo:

net.tls.mode: requireTLS
net.tls.certificateKeyFile: "./mycerts/mongodb-server1.pem"
net.tls.CAFile: "./mycerts/ca.pem"
security.clusterAuthMode: x509
net.tls.clusterFile: "./mycerts/mongodb-cluster1.pem"
net.tls.clusterCAFile: "./mycerts/ca.pem"
setParameter:
tlsX509ClusterAuthDNOverride: "OU=10Gen Server,O=10Gen"

Esta configuración no se tendrá en cuenta hasta que reinicie cada miembro.

4

Para aplicar la configuración actualizada a cada miembro, realice un reinicio continuo de los nodos del servidor repitiendo el procedimiento desde el paso 2.

Durante este proceso, los nodos reiniciados con certificados nuevos usarán los atributos de DN antiguos almacenados en tlsX509ClusterAuthDNOverride para identificar a los nodos que presentan certificados antiguos. Los nodos que aún conservan certificados antiguos usarán el nuevo DN almacenado en para identificar a los nodos tlsX509ClusterAuthDNOverride que presentan certificados nuevos.

5

Para evitar que los nodos de servidor actualizados traten a los clientes que presentan el certificado antiguo como pares, elimine el parámetro tlsX509ClusterAuthDNOverride de todos los archivos de configuración del nodo de servidor.

Por ejemplo:

net.tls.mode: requireTLS
net.tls.certificateKeyFile: "./mycerts/mongodb-server1.pem"
net.tls.CAFile: "./mycerts/ca.pem"
security.clusterAuthMode: x509
net.tls.clusterFile: "./mycerts/mongodb-cluster1.pem"
net.tls.clusterCAFile: "./mycerts/ca.pem"

Esta configuración no se tendrá en cuenta hasta que reinicie cada miembro.

6

Para aplicar la configuración actualizada a cada miembro, realice un reinicio continuo de los nodos del servidor repitiendo el procedimiento desde el paso 2.

Todos los servidores del conjunto de réplicas ahora aceptan conexiones de pares únicamente de miembros que usan certificados que tienen los nuevos atributos DN del sujeto.

Volver

Actualizar a X.509 desde Keyfile.

En esta página