Nuevo en la versión 7.0.
Los miembros del clúster pueden utilizar Certificados X.509 para la autenticación de membresía, que permiten identificar otros servidores en la misma implementación. Este tutorial describe cómo realizar una actualización continua para migrar del uso de atributos de nombre distintivo (DN) de certificado al uso de valores de extensión para identificar a los miembros de un clúster.
Cuando un servidor está configurado con el net.tls.clusterAuthX509.extensionValueLa configuración recibe una solicitud de conexión y compara la cadena de valores de extensión de los certificados presentados con los valores configurados en la configuración extensionValue y tlsClusterAuthX509Override el parámetro. Si los valores coinciden, trata la conexión como miembro del clúster.
Los clústeres que adoptan nuevos certificados pueden usar el parámetro para tlsClusterAuthX509Override aceptar509 certificados X. con diferentes atributos de DN 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
Considera un set de réplicas donde los certificados de los nodos, configurados mediante la opción clusterFile y la opción certificateKeyFile, tienen atributos de nombre distinguido que utilizan la organización MongoDB y la unidad organizativa MongoDB Server. Estos atributos de nombre distinguido se configuran usando la opción net.tls.clusterAuthX509.attributes.
security: clusterAuthMode: x509 net: tls: mode: requireTLS certificateKeyFile: /etc/mycerts/10gen-server1.pem CAFile: /etc/mycerts/ca.pem clusterFile: /etc/mycerts/10gen-cluster1.pem clusterCAFile: /etc/mycerts/ca.pem clusterAuthX509: attributes: O=MongoDB, OU=MongoDB Server
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
Estos pasos actualizan los certificados de miembro para usar nuevos509 certificados X. en un clúster configurado con la attributes configuración.
Inicialmente, los clústeres identifican a los miembros mediante valores DN. Con los nuevos certificados, los servidores identifican a los miembros mediante el valor de extensión mongodb://example.mongodb.net e ignoran los atributos del certificado.
Actualizar la configuración de membresía del clúster TLS
Actualice el archivo de configuración de cada servidor:
Cambie la configuración para
clusterAuthX509attributesque coincida conextensionValueel nuevo certificado reemplazando la configuración con la configuración.Establezca el parámetro para utilizar los atributos DN del certificado
tlsClusterAuthX509Overrideantiguo.
Por ejemplo:
net: tls: mode: requireTLS certificateKeyFile: /etc/mycerts/mongodb-server1.pem CAFile: /etc/mycerts/ca.pem clusterFile: /etc/mycerts/mongodb-cluster1.pem clusterCAFile: /etc/mycerts/ca.pem clusterAuthX509: extensionValue: mongodb://example.mongodb.net security: clusterAuthMode: x509 setParameter: tlsClusterAuthX509Override: "{ attributes: 'O=MongoDB, OU=MongoDB Server' }"
Reiniciar miembros del clúster secundario
Reinicie cada miembro del clúster secundario:
Usar
mongoshpara conectarse a cada miembro del clúster secundario, luego use eldb.shutdownServer()método para detener el servidor:use admin db.shutdownServer() Reiniciar el servidor.
Utilice el método para determinar el estado
rs.status()miembro:rs.status().members Espere a que
stateStrel campo de este miembro muestre un valor deSECONDARYy luego reinicie el siguiente secundario.
Los servidores secundarios en el conjunto de réplicas ahora aceptan conexiones de pares de miembros que usan certificados con los nuevos valores de extensión, así como los antiguos atributos DN.
Reiniciar miembro del clúster principal
Reiniciar el miembro principal:
Conéctese al principal usando,
mongoshrs.stepDown()luego use el método para reducir el miembro a principal:rs.stepDown() El clúster promueve un secundario con el nuevo certificado para que sirva como nuevo primario.
Utilice el método
db.shutdownServer()para apagar el servidor:use admin db.shutdownServer() Reiniciar el servidor.
El servidor principal en el conjunto de réplicas deja de funcionar y se reinicia como un servidor secundario que ahora acepta conexiones de pares de miembros que usan certificados con el nuevo valor de extensión, así como los antiguos atributos DN.
Actualizar los certificados TLS
Actualice el archivo de configuración de cada servidor:
Cambie la configuración para utilizar el nuevo
net.tls.certificateKeyFilecertificado.Cambie la configuración para utilizar el nuevo
net.tls.clusterFilecertificado.
Por ejemplo:
net: tls: mode: requireTLS certificateKeyFile: /etc/mycerts/mongodb-server2.pem CAFile: /etc/mycerts/ca.pem clusterFile: /etc/mycerts/mongodb-cluster2.pem clusterCAFile: /etc/mycerts/ca.pem clusterAuthX509: extensionValue: mongodb://example.mongodb.net security: clusterAuthMode: x509 setParameter: tlsClusterAuthX509Override: "{ attributes: 'O=MongoDB, OU=MongoDB Server' }"
Reiniciar miembros del clúster secundario
Reinicie cada miembro del clúster secundario:
Utilice para conectarse
mongoshdb.shutdownServer()a cada miembro del clúster secundario, luego use el método para detener el servidor:use admin db.shutdownServer() Reiniciar el servidor.
Utilice el método para determinar el estado
rs.status()miembro:rs.status().members Espere a que
stateStrel campo de este miembro muestre un valor deSECONDARYy luego reinicie el siguiente secundario.
Los servidores secundarios en el conjunto de réplicas ahora utilizan los nuevos certificados X.509.
Reiniciar miembro del clúster principal
Reiniciar el miembro principal:
Conéctese al principal usando,
mongoshrs.stepDown()luego use el método para reducir el miembro a principal:rs.stepDown() El clúster promueve un secundario con el nuevo certificado para que sirva como nuevo primario.
Utilice el método
db.shutdownServer()para apagar el servidor:use admin db.shutdownServer() Reiniciar el servidor.
El servidor principal en el conjunto de réplicas deja de funcionar y se reinicia como un servidor secundario que utiliza el nuevo certificado X.509.
Eliminar la configuración de anulación de la certificación DN
Ahora que todos los miembros del clúster utilizan el nuevo509 certificado X., actualice el archivo tlsClusterAuthX509Override de configuración para eliminar las configuraciones setParameter para el parámetro.
Por ejemplo:
net: tls: mode: requireTLS certificateKeyFile: /etc/mycerts/mongodb-server1.pem CAFile: /etc/mycerts/ca.pem clusterFile: /etc/mycerts/mongodb-cluster1.pem clusterCAFile: /etc/mycerts/ca.pem clusterAuthX509: extensionValue: mongodb://example.mongodb.net security: clusterAuthMode: x509
Esto garantiza que el servidor no configure los valores del certificado antiguo al iniciarse.
Reiniciar miembros del clúster secundario
Reinicie cada miembro del clúster secundario:
Utilice para conectarse
mongoshdb.shutdownServer()a cada miembro del clúster secundario, luego use el método para detener el servidor:use admin db.shutdownServer() Reiniciar el servidor.
Utilice el método para determinar el estado
rs.status()miembro:rs.status().members Espere a que
stateStrel campo de este miembro muestre un valor deSECONDARYy luego reinicie el siguiente secundario.
Los servidores secundarios en el conjunto de réplicas se reinician y ya no aceptan conexiones de los antiguos certificados X.509.
Reiniciar miembro del clúster principal
Reiniciar el miembro principal:
Conéctese al principal usando,
mongoshrs.stepDown()luego use el método para reducir el miembro a principal:rs.stepDown() El clúster promueve un secundario con el nuevo certificado para que sirva como nuevo primario.
Utilice el método
db.shutdownServer()para apagar el servidor:use admin db.shutdownServer() Reiniciar el servidor.
El servidor principal se desactiva y se reinicia como un servidor secundario que ya no acepta conexiones de los antiguos certificados X.509.