Docs Menu
Docs Home
/ /
TLS/SSL

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 / registra una advertencia en la conexión si mongos el509 certificado x. presentado caduca dentro de los 30 días posteriores a la hora del mongod/mongos sistema host.

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 / registra una advertencia en la conexión si mongos el509 certificado x. presentado caduca dentro de los 30 días posteriores a la hora del mongod/mongos sistema host.

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 es de la autoridad de certificación especificada (. Si el certificado--tlsCAFilemongosh no es de la CA especificada, no podrá 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, evite usar la opción --tlsAllowInvalidCertificates --tlsAllowInvalidCertificates si es posible. Si es necesario usar, úsela solo en sistemas donde no sea posible la intrusión.

Simongoshse ejecuta con la opción--tlsAllowInvalidCertificates, mongoshno intentará validar los certificados del servidor. Esto crea una vulnerabilidad para los certificadosmongodymongoscaducados, así como para los procesos externos que se hacen pasar por instanciasmongodomongosválidas. Si solo necesita deshabilitar la validación del nombre de host en los certificados TLS/SSL, consulte--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

Configurar mongod y mongos

En esta página