Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.

Configurar TLS en implementaciones autogestionadas

Este tutorial le muestra cómo configurar TLS en un set de réplicas autogestionado. Seleccione un enfoque en función de si desea utilizar mTLS intraclúster, que es necesario para habilitar la autenticación X.509 entre nodos.

Importante

Estos pasos se aplican a implementaciones de MongoDB autogestionadas. Los clúster de MongoDB Atlas utilizan TLS por defecto. Si utiliza Cloud Manager o Ops Manager, configure el TLS a través de su herramienta de gestión de implementación.

Antes de empezar, verifique que tiene lo siguiente:

  • Un set de réplicas autogestionado en el que cada nodo tiene un nombre de host, como localhost o mongo0.example.com. Actualmente, TLS no está configurado en ningún nodo del set de réplicas.

  • Certificados de servidor TLS para cada nodo que obtuvo siguiendo el tutorial Obtener certificados de servidor, como mongo0.pem.

  • Un certificado de CA para firmar los certificados del servidor, como ca.pem.

  • Acceso al archivo de configuración mongod en cada nodo.

  • Acceso a mongosh.

Siga este procedimiento si no necesita mTLS intraclúster o autenticación X.509 entre los nodos del servidor.

1

Cada nodo utiliza el contenido de un archivo de claves para autenticar a otros nodos de la implementación. Cree un archivo de claves con el siguiente comando:

openssl rand -base64 756 > /etc/ssl/mongodb/keyfilechmod 400 /etc/ssl/mongodb/keyfile

Copia el archivo de claves a cada nodo de la implementación. Asegúrate de restringir los permisos en el archivo de claves para que solo el proceso mongod pueda leer el archivo.

2

En cada nodo, busca y abre el archivo de configuración mongod. Si el archivo no existe, créalo. Agrega las siguientes opciones de TLS. Utiliza rutas absolutas a los archivos de certificado.

Por ejemplo, el archivo de configuración de su nodo primario tiene el siguiente aspecto:

net: tls: mode: allowTLS certificateKeyFile: /etc/ssl/mongodb/mongo0.pem CAFile: /etc/ssl/mongodb/ca.pem allowConnectionsWithoutCertificates: true security: clusterAuthMode: keyFile keyFile: /etc/ssl/mongodb/keyfile setParameter: tlsWithholdClientCertificate: true
  • mode configurado en allowTLS acepta conexiones TLS, pero no las requiere, por lo que los nodos pueden completar un reinicio en secuencia sin interrumpir la replicación.

  • certificateKeyFile especifica el certificado del nodo. Reemplace el nombre de archivo con el archivo de clave de certificado para el nodo específico que está configurando. CAFile especifica el certificado de CA que firmó el certificado del nodo.

  • allowConnectionsWithoutCertificates permite a los clientes conectarse sin proporcionar un certificado TLS.

  • clusterAuthMode configurado en keyFile permite que los nodos se autentiquen mediante un archivo de claves. keyFile especifica el archivo de claves que los nodos utilizan para autenticarse entre sí.

  • tlsWithholdClientCertificate evita que el nodo presente su certificado de servidor al realizar conexiones salientes a otros nodos del clúster. Esto es necesario porque evita que los nodos utilicen certificados de autenticación de servidor para la autenticación de cliente, especialmente si sus certificados no incluyen el EKU clientAuth.

3

Reinicie el proceso mongod para aplicar la nueva configuración de TLS. Para aplicar la configuración sin tiempo de inactividad, reinicie los nodos de forma progresiva.

En cada host de la implementación, comenzando por los nodos secundarios y terminando por el nodo primario, ejecuta lo siguiente:

sudo systemctl restart mongod

Para verificar que el reinicio en secuencia se completó correctamente, ejecute el siguiente comando en cada host:

sudo systemctl status mongod
4

Después de que todos los nodos se reinicien correctamente con TLS habilitado, actualice el archivo de configuración en cada nodo. Cambie net.tls.mode de allowTLS a requireTLS para aplicar conexiones cifradas para todos los clientes y nodos:

net: tls: mode: requireTLS
5

Reinicie el proceso mongod para aplicar la nueva configuración de TLS. Para aplicar la configuración sin tiempo de inactividad, reinicie los nodos de forma progresiva.

En cada host de la implementación, comenzando por los nodos secundarios y terminando por el nodo primario, ejecuta lo siguiente:

sudo systemctl restart mongod

Para verificar que el reinicio en secuencia se completó correctamente, ejecute el siguiente comando en cada host:

sudo systemctl status mongod

Para aprender a conectarse a su implementación con una aplicación cliente, continúe con Conectarse a un set de réplicas habilitado para TLS.

Califique esta página