Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Habilitar y configurar TLS

En esta guía, puedes aprender a usar el protocolo TLS para asegurar tu conexión a una implementación de MongoDB. Para configurar tu conexión para usar TLS, activa la opción TLS y, opcionalmente, proporciona tus certificados para validación en la aplicación config/database.php .env.

Tip

Para aprender más sobre TLS, consulte la entrada de Wikipedia sobre Seguridad de la capa de transporte.

En el archivo config/database.php de su aplicación, puede habilitar TLS en una conexión a su implementación de MongoDB de una de las siguientes maneras:

  • Establecer la opción tls en true en tu cadena de conexión

  • Estableciendo la opción tls en true en la propiedad options de tu entrada de conexión mongodb

Seleccione de lo siguiente Connection String y Connection Options pestañas para ver una muestra de código correspondiente:

'connections' => [
'mongodb' => [
'driver' => 'mongodb',
'dsn' => 'mongodb://<hostname>:<port>/?tls=true',
'database' => 'myDB',
]
]
'connections' => [
'mongodb' => [
'driver' => 'mongodb',
'dsn' => '<connection string>',
'database' => 'myDB',
'options' => [
'tls' => true,
],
]
]

Para ver una lista completa de opciones de conexión, consulta Opciones de conexión.

Nota

Si su cadena de conexión utiliza un registro DNS SRV al incluir el prefijo mongodb+srv, TLS está habilitado en su conexión de forma predeterminada.

Para iniciar correctamente una solicitud TLS, tu aplicación podría necesitar presentar certificados criptográficos para probar su identidad. Los certificados de tu aplicación deben almacenarse como archivos PEM para habilitar TLS al conectarse.

Importante

Para uso en producción, recomendamos que su implementación de MongoDB utilice certificados válidos generados y firmados por la misma autoridad de certificación. Para pruebas, su implementación puede usar certificados autofirmados.

La siguiente lista describe los componentes que su cliente puede presentar para establecer una conexión habilitada para TLS:

Componente TLS
Descripción

Autoridad de certificación (CA)

Una o más autoridades de certificación en las que confiar al establecer una conexión TLS. Puede pasar la ruta de este archivo a la opción tlsCAFile.

Certificado de cliente

Un certificado digital que permite al servidor verificar la identidad de tu aplicación para establecer una conexión de red cifrada. Puedes pasar la ruta de este archivo a la opción tlsCertificateKeyFile.

Clave del certificado

El archivo de clave privada del certificado del cliente. Esta clave suele estar incluida en el propio archivo del certificado. Si es necesario proporcionarlo, el certificado y la clave deben concatenarse en un solo archivo que se pueda pasar a la opción tlsCertificateKeyFile.

Frase de contraseña

La contraseña para descifrar la clave privada del cliente si está cifrada. Puede pasar la ruta de este archivo a la opción tlsCertificateKeyFilePassword.

Si es necesario, debe hacer referencia a sus certificados al configurar su conexión mongodb para que el servidor pueda validarlos antes de que el cliente se conecte.

Recomendamos hacer referencia a tus certificados y establecer otras opciones de TLS en la propiedad options de tu configuración de conexión en lugar de en la cadena de conexión. Esto mejora la legibilidad del código en tu aplicación.

Establezca las siguientes opciones en la propiedad options para referenciar sus certificados:

  • tlsCAFile

  • tlsCertificateKeyFile

  • tlsCertificateKeyFilePassword

Nota

Para fines de prueba, puede establecer las siguientes opciones en true para deshabilitar la validación:

  • tlsAllowInvalidCertificates

  • tlsAllowInvalidHostnames

También puede configurar la opción tlsInsecure en true para configurar implícitamente ambas opciones anteriores.

Especificar estas opciones en un entorno de producción puede volver insegura su aplicación. Para aprender más, consulte la referencia Opciones de conexión en el manual del servidor.

El siguiente ejemplo configura una conexión con TLS activado:

'connections' => [
'mongodb' => [
'driver' => 'mongodb',
'dsn' => '<connection string>',
'database' => 'myDB',
'options' => [
'tls' => true,
'tlsCAFile' => '<path to CA certificate>',
'tlsCertificateKeyFile' => '<path to private client certificate>',
'tlsCertificateKeyFilePassword' => '<path to client key passphrase>',
]
]
]

Para obtener más información sobre cómo configurar las opciones del URI, consulta la documentación de la API de MongoDB\\Driver\\Manager::__construct().

Para obtener más información sobre cómo habilitar TLS en una conexión, consulta la siguiente documentación del manual del servidor:

Volver

Opciones de conexión

En esta página