Para actualizar clústeres autoadministrados que actualmente utilizan Para la autenticación del archivo declaves con autenticación X., utilice los siguientes procesos de actualización continua.509
Nota
MongoDB deshabilita el soporte para el cifrado TLS 1.0 en sistemas donde TLS 1.1+ está disponible.
Procedimientos de actualización (utilizando tls Opciones)
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 la configuración/opciones tls. Para conocer los procedimientos que utilizan la configuración/opciones ssl, consulte Procedimientos de actualización (utilizando las opciones ssl).
Actualizar tls clústeres (utilizando las opciones) mediante TLS/SSL y archivo de claves
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 archivo de claves, para actualizar a la autenticación de clúster X.509, utilice el siguiente proceso de actualización continua:
Para cada miembro de un clúster, agregue las siguientes configuraciones al archivo de configuración y reinicie:
security.clusterAuthMode- Establecido en
sendKeyFile. Con este valor, cada nodo continúa enviando su archivo de claves para autenticarse como miembro. Sin embargo, cada nodo puede recibir un archivo de claves o un certificado X.509 de otros miembros para autenticarse.
net.tls.clusterFile- Establezca la ruta adecuada del archivo de clave de certificado del nodo para la autenticación de membresía.
mongod/ presenta este archivo a otros miembros del clúster para identificarse comomongosmiembro.
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 Actualice todos los nodos del clúster para incluir las configuraciones
security.clusterAuthModey antes denet.tls.clusterFilecontinuar.Conéctese a cada nodo y use el comando para
setParameteractualizarclusterAuthModesendX509a. []1db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } ) sendX509Con, cada nodo envía su para autenticarse como miembro. Sin embargo, cada nodo puede recibir un archivo de claves onet.tls.clusterFileun509 certificado X. de otros miembros para autenticarse.Actualice todos los nodos del clúster a esta configuración antes de continuar.
Opcional, pero recomendado. Finalmente, para cada nodo del clúster, conéctese al nodo y use el comando
setParameterpara actualizarclusterAuthModeax509y usar solo el certificado X.509 para la autenticación. [1]db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } ) Tras la actualización de todos los nodos, edite el archivo de configuración con la configuración X. adecuada509 para garantizar que, en los reinicios posteriores, el clúster utilice la509 autenticación X.. 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:
mongodPara, véase: ---tlsMode---tlsCertificateKeyFile---tlsCAFile---tlsClusterFile---clusterAuthModemongosPara, véase: ---tlsMode---tlsCertificateKeyFile---tlsCAFile---tlsClusterFile---clusterAuthMode
Actualizar (usando tls opciones) clústeres que usan archivo de clave pero no TLS/SSL
Nota
El procedimiento utiliza las tls opciones. Para conocer los procedimientos que utilizan la ssl configuración/opciones, consulte Clústeres que actualmente no usan TLS/SSL (Uso ssl de las opciones).
Para clústeres que utilizan autenticación de archivo de claves pero no TLS/SSL, para actualizar a la autenticación de membresía X.509 y conexiones TLS/SSL:
Para cada miembro de un clúster, agregue las siguientes configuraciones al archivo de configuración y reinicie:
net.tls.mode- Establecido en
allowTLS. Este valor permite que el nodo acepte conexiones entrantes TLS/SSL y no TLS/no 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.
mongod/ presenta este archivo a sus clientes para establecer la identidadmongosde la instancia. Obligatorio al usar TLS/SSL.
net.tls.clusterFile- Establezca la ruta adecuada del archivo de clave de certificado del nodo para la autenticación de membresía.
mongod/ presenta este archivo a otros miembros del clúster para identificarse comomongosmiembro.
net.tls.CAFile- Establezca la ruta del archivo que contiene la cadena de certificados para verificar los certificados recibidos.
security.clusterAuthMode- Establecido en
sendKeyFile. Esto permite que cada nodo siga enviando su archivo de claves para autenticarse como miembro. Sin embargo, cada nodo puede recibir un archivo de claves o un certificado X.509 de otros miembros para autenticarse.
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.clusterFileysecurity.clusterAuthMode.Conéctese a cada nodo y use el
setParametercomando []1 para:Actualice
tlsModepreferSSLa. ContlsModeestablecidopreferTLSen, el nodo acepta conexiones entrantes TLS/SSL y no TLS/no SSL, y sus conexiones salientes usan TLS/SSL.Actualice
clusterAuthModesendX509a. ConclusterAuthModeestablecidosendX509en, cada nodo envía su para autenticarse como miembro. Sin embargo, cada nodo sigue aceptando un archivo de claves onet.tls.clusterFileun509 certificado X. de otros miembros para autenticarse.
db.adminCommand( { setParameter: 1, tlsMode: "preferTLS" } ); db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } ); Actualice todos los nodos del clúster a esta configuración antes de continuar.
Después de actualizar todos los nodos, edite el archivo de509 509 configuración con las configuraciones TLS/SSL y X. adecuadas para garantizar que, en los reinicios posteriores, el clúster utilice la autenticación X..
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 del clúster utilizan conexiones TLS/SSL. Sin embargo, pueden aceptar conexiones no TLS/SSL desde 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 estos últimos.
Para imponer conexiones TLS/SSL desde aplicaciones cliente y aceptar solo X.509 para la autenticación de membresía, consulte el siguiente paso.
Opcional, pero recomendado. Actualice todos los nodos para usar solo
TLS/SSLconexiones y solo el509 certificado X. para la autenticación de membresía.Importante
Este requisito de conexión TLS/SSL se aplica a todas las conexiones, tanto con los clientes como con los miembros 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.Consulte "Conectarse a instancias de MongoDB que requieren certificados de cliente" para obtener más información sobre la conexión con TLS/SSL.Consulte también "Validar solo si un cliente presenta un certificado".
Actualice
net.tls.modearequireTLSsecurity.clusterAuthModeyx509a.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:
mongodPara, véase: ---tlsMode---tlsCertificateKeyFile---tlsCAFile---tlsClusterFile---clusterAuthModemongosPara, véase: ---tlsMode---tlsCertificateKeyFile---tlsCAFile---tlsClusterFile---clusterAuthMode
Procedimientos de actualización (utilizando ssl las opciones)
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).
Clústeres que actualmente utilizan TLS/SSL (utilizando ssl opciones)
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 archivo de claves, para actualizar a la autenticación de clúster X.509, utilice el siguiente proceso de actualización continua:
Para cada nodo de un clúster, inicie el nodo con la opción establecida
--clusterAuthModeensendKeyFiley la opción--sslClusterFileestablecida en la ruta correspondiente del certificado del nodo. Incluya otras opciones TLS/SSL, así como cualquier otra opción necesaria para su 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 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 autenticarse. Actualice todos los nodos del clúster a esta configuración.
Luego, para cada nodo de un clúster, conéctese al nodo y use el comando para
setParameteractualizarclusterAuthModesendX509a. []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
--sslClusterFileen 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.Opcional, pero recomendado. Finalmente, para cada nodo del clúster, conéctese al nodo y use el comando
setParameterpara actualizarclusterAuthModeax509y usar solo el certificado X.509 para la autenticación. [1] Por ejemplo:db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } ) Después de actualizar todos los nodos, edite el archivo 509 de509 configuración con las configuraciones X. adecuadas para garantizar que, en los reinicios posteriores, el clúster utilice la autenticación X..
--clusterAuthMode Consulte para conocer los distintos modos y sus descripciones.
Clústeres que actualmente no utilizan TLS/SSL (utilizando ssl opciones)
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 de archivo de clave pero no TLS/SSL, para actualizar a la autenticación X.509, utilice el siguiente proceso de actualización continua:
Para cada nodo de un clúster, inicie el nodo con la opción
--sslModeestablecidaallowSSLen, la opción establecida--clusterAuthModeensendKeyFiley la opción--sslClusterFileestablecida en la ruta correspondiente del certificado del nodo. Incluya otras opciones TLS/SSL, así como cualquier otra opción necesaria 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 allowSSLpermite que el nodo acepte conexiones entrantes TLS/SSL y no TLS/no SSL. Las conexiones salientes del nodo no utilizan 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
--clusterAuthMode sendKeyFileun509 certificado X. de otros miembros para autenticarse.Actualice todos los nodos del clúster a estas configuraciones.
Luego, para cada nodo de un clúster, conéctese al nodo y use el comando
setParameterpara actualizar elsslModeapreferSSLy elclusterAuthModeasendX509. [1] Por ejemplo:db.adminCommand( { setParameter: 1, sslMode: "preferSSL", clusterAuthMode: "sendX509" } ) Con
sslModeestablecidopreferSSLen, el nodo acepta conexiones entrantes tanto TLS/SSL como no TLS/no SSL, y sus conexiones salientes usan TLS/SSL.Con
clusterAuthModeestablecidosendX509en, cada nodo usa su509 certificado X., especificado con la--sslClusterFileopción en el paso anterior, para autenticarse como miembro. Sin embargo, cada nodo continúa aceptando un archivo de claves o un509 certificado X. de otros miembros para autenticarse.Actualice todos los nodos del clúster a estas configuraciones.
Opcional, pero recomendado. Finalmente, para cada nodo del clúster, conéctese al nodo y use el comando para
setParameteractualizarsslModerequireSSLclusterAuthModea yx509a. []1 Por ejemplo:db.adminCommand( { setParameter: 1, sslMode: "requireSSL", clusterAuthMode: "x509" } ) Con
sslModeestablecidorequireSSLen, el nodo solo usa conexiones TLS/SSL.Con la configuración
clusterAuthModeajustada ax509, el nodo solo utiliza el certificado X.509 para autenticación.Después de actualizar todos los nodos, edite el archivo de509 509 configuración con las configuraciones TLS/SSL y X. adecuadas para garantizar que, en los reinicios posteriores, el clúster utilice la autenticación X..
--clusterAuthMode Consulte para conocer los distintos 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. |