Docs Menu
Docs Home
/ /
/ / /

Configuración de TLS/SSL para Clientes

Los clientes deben tener soporte para TLS/SSL para conectarse a un mongodo una instancia que mongos requieren conexiones TLS/SSL.

Nota

  • Las compilaciones heredadas de MongoDB para Linux de 64 bits (x64) no incluyen compatibilidad con TLS/SSL.

  • MongoDB deshabilita el soporte para el cifrado TLS 1.0 en sistemas donde TLS 1.1+ está disponible.

Importante

Una descripción completa de los certificados TLS/SSL, PKI (Infraestructura de Llave Pública) y la Autoridad de Certificación está fuera del alcance de este documento. Esta página asume conocimientos previos de TLS/SSL, así como el acceso a certificados válidos.

mongosh proporciona varias configuraciones de TLS/SSL, incluyendo:

Opción de TLS
notas

Permite la conexión TLS/SSL.

Especifica el archivo .pem que contiene el certificado y la clave de mongosh para presentarlos a la instancia mongod o mongos. Esta opción es mutuamente excluyente con --tlsCertificateSelector

mongod / mongos genera un registro de advertencia en la conexión si el certificado X.509 presentado caduca dentro de 30 días a partir de la hora del sistema host mongod/mongos.

Si el archivo de clave de certificado de mongosh está cifrado.

Especifica el archivo .pem de la Autoridad de Certificación (CA) para la verificación del certificado presentado por el mongod o la instancia mongos.

Si funciona en Windows o macOS, usa un certificado del almacén de certificados del sistema.

Esta opción se excluye mutuamente con --tlsCertificateKeyFile.

mongod / mongos genera un registro de advertencia en la conexión si el certificado X.509 presentado caduca dentro de 30 días a partir de la hora del sistema host mongod/mongos.

Para ver una lista completa de las opciones de mongosh de tls, consulta las opciones TLS.

Para conexiones TLS/SSL, mongosh valida el certificado presentado por la mongod o la instancia mongos:

  • mongosh verifica que el certificado proviene de la Autoridad Certificadora especificada (--tlsCAFile. Si el certificado no proviene de la CA especificada, mongosh fallará al conectarse.

  • mongosh verifica que el nombre de host (especificado en la opción --host o la cadena de conexión) coincida con el SAN (o, si SAN no está presente, el CN) en el certificado presentado por mongod o mongos. Si SAN está presente, mongosh no coincide con el CN. Si el nombre de host no coincide con el SAN (o el CN), mongosh no se puede conectar.

    A partir de MongoDB 4.2, al realizar una comparación de SAN, MongoDB admite la comparación de nombres DNS o direcciones IP. En versiones anteriores, MongoDB solo admitía comparaciones de nombres DNS.

    Para conectar mongosh a un mongod o mongos que requiere TLS/SSL, se debe especificar la opción --host o usar una cadena de conexión para especificar el nombre de host. Todas las demás opciones del TLS/SSL deben especificarse mediante las opciones de la línea de comandos.

Para conectarse a una instanciamongod o mongos que requiera comunicación cifrada, se debe comenzar mongosh con:

Por ejemplo, se puede considerar una instancia de mongod que se ejecuta en hostname.example.com con las siguientes opciones:

mongod --tlsMode requireTLS --tlsCertificateKeyFile <pem>

Para conectarse a la instancia, se debe comenzar mongosh con las siguientes opciones:

mongosh --tls --host hostname.example.com --tlsCAFile /etc/ssl/caToValidateServerCertificates.pem

mongosh verifica el certificado presentado por la instancia mongod contra el nombre de host especificado y el archivo CA.

Para conectarse a un mongod o mongos que requiera certificados de cliente firmados por CA, se debe comenzar mongosh con:

Por ejemplo, se puede considerar una instancia de mongod que se ejecuta en hostname.example.com con las siguientes opciones:

mongod --tlsMode requireTLS --tlsCertificateKeyFile /etc/ssl/mongodb.pem --tlsCAFile /etc/ssl/caToValidateClientCertificates.pem

Para conectarse a la instancia, se debe comenzar mongosh con las siguientes opciones:

mongosh --tls --host hostname.example.com --tlsCertificateKeyFile /etc/ssl/client.pem --tlsCAFile /etc/ssl/caToValidateServerCertificates.pem

Para especificar un certificado de cliente del almacenes de certificados del sistema, se debe utilizar la opción --tlsCertificateSelector en lugar de --tlsCertificateKeyFile.

Si el archivo CA también está en los almacenes de certificados del sistema, se puede omitir la opción --tlsCAFile.

Por ejemplo, si un certificado con el CN (Common Name) de myclient.example.net y el archivo de CA que lo acompaña están en el almacén de certificados del sistema macOS, la conexión se puede hacer así:

mongosh --tls --host hostname.example.com --tlsCertificateSelector subject="myclient.example.net"

Hay disponibles en mongosh, pero se deben usar las alternativas de tls en su lugar.

Advertencia

Aunque esté disponible, evita usar la opción--tlsAllowInvalidCertificates si es posible. Si es necesario el uso de --tlsAllowInvalidCertificates, utiliza la opción solo en sistemas donde no sea posible la intrusión.

Si mongosh ejecuta con la opción--tlsAllowInvalidCertificates, mongosh no intentará validar los certificados del servidor. Esto crea una vulnerabilidad a los certificados mongod y mongos vencidos, así como a procesos foráneos que se hagan pasar por instancias válidas de mongod o mongos. Si solo se necesita desactivar la validación del nombre del host en los certificados TLS/SSL, se puede consultar --tlsAllowInvalidHostnames.

MongoDB Atlas usa TLS/SSL para cifrar las conexiones a las bases de datos.

Los agentes de supervisión de MongoDB Cloud Manager y Ops Manager utilizan comunicación cifrada para recopilar sus estadísticas. Como los agentes ya cifran las comunicaciones con los servidores de MongoDB Cloud Manager/Ops Manager, solo es cuestión de habilitar el soporte con TLS/SSL en MongoDB Cloud Manager/Ops Manager para cada host.

Para obtener más información, consulte:

Los drivers de MongoDB soportan comunicación cifrada. Para obtener más detalles, se puede consultar:

Varios programas utilitarios de MongoDB soportan la comunicación cifrada. Estas herramientas incluyen:

Para usar la comunicación cifrada con estas herramientas, se deben usar las mismas opciones tls que mongosh. Ver MongoDB Shell.

Tip

Volver

Desarrolle localmente con TLS

En esta página