Los miembros de un conjunto de réplicas o un clúster fragmentado pueden usar Certificados X.509 para la autenticación de membresía para identificar otros servidores en la misma implementación. Este tutorial describe cómo realizar una actualización continua para rotar509 los certificados X. en un clúster que no utiliza el net.tls.clusterAuthX509 Configuración para configurar los atributos de nombre distinguido (DN).
Nota
Para realizar una actualización continua para rotar certificados en un clúster que usa la net.tls.clusterAuthX509 configuración o en un clúster que usará esta configuración después de la actualización, consulte Rotar certificados en clústeres autoadministrados con clusterAuthX.509
Cuando un nodo de servidor recibe una solicitud de conexión, compara los atributos de Nombre Distinguido (DN) del subject campo de los certificados presentados con los atributos DN del sujeto de sus propios certificados. Los certificados coinciden si sus sujetos contienen los mismos valores para los atributos OrganizaciónO (), Unidad OrganizativaOU () 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 tlsX509ClusterAuthDNOverride parámetro. Si los atributos DN tlsX509ClusterAuthDNOverride del sujeto del servidor o el valor configurado coinciden con los atributos DN del sujeto del certificado presentado, el nodo de 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.
Acerca de esta tarea
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.
Pasos
Establecer parámetro de anulación en todos los miembros.
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.
Reiniciar todos los miembros.
Para realizar un reinicio en secuencia de todos los miembros, reinicia cada secundario y luego el primario.
Para cada miembro secundario, conecte mongosh al miembro, entonces:
Utilice el método para cerrar el
db.shutdownServer()miembro:use admin db.shutdownServer() Reinicia el nodo.
Antes de reiniciar el siguiente secundario, asegúrese de que este miembro haya alcanzado
SECONDARYel estado. Para determinar el estado del miembro, ejecute y lea el valorrs.status()delstateStrcampo.rs.status().members
Para el miembro principal, conecta mongosh al nodo y luego:
Utilice para reducir el
rs.stepDown()miembro:rs.stepDown() Utilice el método para cerrar el
db.shutdownServer()miembro:use admin db.shutdownServer() 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.
Modificar la configuración de todos los miembros.
Actualice el archivo de configuración de cada servidor:
Cambie la configuración al nuevo
net.tls.certificateKeyFilecertificado.Cambie la configuración al nuevo
net.tls.clusterFilecertificado.Establezca el parámetro para utilizar los atributos DN del certificado
tlsX509ClusterAuthDNOverrideantiguo.
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.
Reiniciar todos los miembros.
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.
Eliminar el parámetro de anulación de todos los miembros.
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.
Reiniciar todos los miembros.
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.