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

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

Los nodos de un set de réplicas o de un clúster pueden usar certificados x.509 para autenticación de membresía para identificarse mutuamente como miembros de la misma implementación.

Para identificarse entre sí como miembros del mismo implementación, los atributos de la Organización (O's), los atributos de la unidad organizativa (OU) y los componentes del dominio (DC) de los certificados deben coincidir.

En algunas situaciones, puede que necesite actualizar los certificados de miembro a nuevos certificados con el nuevo nombre distintivo (),DN por ejemplo, si una organización cambia de nombre. Puede usar el parámetro para establecer un alternativo para tlsX509ClusterAuthDNOverride la DN coincidencia. Con este parámetro, puede realizar una actualización continua de los certificados a nuevos certificados con un DN diferente.

El siguiente tutorial describe el proceso para actualizar los certificados de un set de réplicas sin tiempo de inactividad.

Considera un set de réplicas donde los certificados de cada nodo (clusterFile y certificateKeyFile) con un valor DN que contiene "OU=10gen Server,O=10gen" (no se consideran atributos adicionales como parte de la comparació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 nodos (clusterFile y certificateKeyFile) a nuevos certificados que tienen un valor DN con "OU=MongoDB Server,O=MongoDB".

Nota

El siguiente procedimiento presupone que los nuevos certificados x.509 cumplen con todos los demás requisitos del certificado de membresía. Para más información, consulte Requisitos del certificado de membresía.

El procedimiento requiere que todos los nodos de la implementación sean reiniciados. Como la configuración no se tendrá en cuenta hasta que reinicies todos los nodos, puede que tus instancias registren mensajes hasta que se complete el procedimiento.

Para evitar estos mensajes, puede configurar el parámetro de anulación en los miembros en ejecución.

Conecta mongosh directamente a cada nodo del despliegue y establece el parámetro tlsX509ClusterAuthDNOverride en el nuevo certificado DN:

db.adminCommand( { setParameter: 1, tlsX509ClusterAuthDNOverride: "OU=MongoDB Server,O=MongoDB" } )

Modifica la configuración de cada nodo:

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=MongoDB Server,O=MongoDB"

La configuración no se tendrá en cuenta hasta que reinicie cada nodo (vea el siguiente paso).

Una vez que haya modificado la configuración para todos los nodos, reinicie cada secundario y, a continuación, el primario.

Para cada nodo secundario, conecta mongosh al nodo y:

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

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

    Asegúrate de que el nodo haya alcanzado el estado SECONDARY antes de reiniciar el siguiente secundario.

Para el primario, conecte mongosh al nodo y

  1. Usa rs.stepDown() para destituir al nodo:

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

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

Una vez que todos los miembros se hayan reiniciado con el nuevo certificado, puedes remover el parámetro tlsX509ClusterAuthDNOverride de la configuración.

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"

Los ajustes no se tendrán en cuenta hasta que reinicie cada nodo.

Volver

Actualizar a X.509 desde Keyfile.