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, podrá aprender cómo utilizar el protocolo TLS para proteger su conexión a una implementación de MongoDB. TLS es un protocolo criptográfico que asegura la comunicación entre tu aplicación y MongoDB. Para configurar tu conexión para utilizar TLS, habilita la opción de TLS y proporciona tus certificados para la validación al crear un cliente.

Esta guía incluye las siguientes secciones:

  • Habilitar TLS describe formas de habilitar TLS en tu conexión

  • Configurar Certificados describe los certificados necesarios para configurar TLS

  • Certificados de referencia en un cliente proporciona un ejemplo de cómo crear un TlsOptions estructura para configurar tus opciones TLS

  • Información adicional proporciona enlaces a recursos y documentación de la API para los tipos y métodos mencionados en esta guía

Tip

Puedes habilitar TLS en una conexión a tu instancia de MongoDB de una de las siguientes maneras:

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

  • Establecer el campo tls de una instancia de ClientOptions en la variante Tls::Enabled con un struct TlsOptions vacío e instanciar un Client con esas opciones

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

let uri = "mongodb://<hostname>:<port>?tls=true"
let client = Client::with_uri_str(uri).await?;
let uri = "<connection string>"
let mut client_options = ClientOptions::parse_async(uri).await?;
let tls_opts = TlsOptions::builder().build();
client_options.tls = Some(Tls::Enabled(tls_opts));
let client = Client::with_options(client_options)?;

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 obtener una lista completa de opciones de cliente, consulta la Guía de opciones de conexión.

Para iniciar correctamente una solicitud TLS, tu aplicación debe presentar certificados criptográficos para demostrar su identidad. Los certificados de tu aplicación deben almacenarse como archivos de Mail Mejorado de Privacidad (PEM) para habilitar TLS al conectar a una implementación de MongoDB. El formato de archivo PEM es un formato contenedor para certificados criptográficos.

Importante

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

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

Componente TLS
Descripción

Autoridad certificadora (CA)

Una o más autoridades de certificación en las que confiar al realizar una conexión TLS

Certificado de cliente

Un certificado digital que le permite al servidor verificar la identidad de su aplicación para establecer una conexión de red cifrada

Clave del certificado

El archivo de llave privada del certificado del cliente, que a menudo se incluye dentro del propio archivo de certificado.

Frase de contraseña

La contraseña para descifrar la clave privada del cliente si está cifrada

Debe hacer referencia a sus certificados en su estructura TlsOptions para que el servidor pueda validarlos antes de que el cliente se conecte.

Primero debes convertir las rutas de tus certificados a tipos PathBuf, por lo que debes importar este tipo del módulo std::path. A continuación, llama a las funciones de constructor del struct TlsOptions para establecer los campos ca_file_path y cert_key_file_path con las rutas de los archivos de certificados.

Dentro de tu instancia de TlsOptions, puedes configurar campos opcionales para configurar TLS en tu conexión. Para propósitos de prueba, puedes establecer los campos allow_invalid_certificates y allow_invalid_hostnames.

Al establecer la opción allow_invalid_certificates en true, se deshabilita la verificación del nombre de host, y al establecer el allow_invalid_hostnames en true, se desactiva la validación del certificado.

Advertencia

Especificar cualquiera de estas opciones en un entorno de producción hace que tu aplicación sea insegura y potencialmente vulnerable a certificados caducados y a procesos externos que se hacen pasar por instancias válidas de clientes.

Este ejemplo realiza las siguientes acciones para crear una instancia TlsOptions y una instancia Client que está configurada para TLS:

  1. Crea variables para hacer referencia a las rutas de los archivos de certificados en PathBuf instancias.

  2. Instancia una estructura TlsOptions y establece los campos ca_file_path y cert_key_file_path en las rutas de acceso a archivos relevantes.

  3. Pasa la instancia TlsOptions a la variante Enabled de la enumeración Tls.

  4. Configura el campo tls de la estructura ClientOptions a la variante Tls::Enabled que contiene la instancia TlsOptions.

  5. Crea una instancia de Client con estas opciones.

use std::path::PathBuf;
use mongodb::{ options::{ ClientOptions, TlsOptions, Tls }, Client };
#[tokio::main]
async fn main() -> mongodb::error::Result<()> {
let uri = "<connection string>";
let mut client_options = ClientOptions::parse_async(uri).await?;
let ca_file = PathBuf::from(r"<path to CA certificate>");
let key_file = PathBuf::from(r"<path to client certificate>");
let tls_opts = TlsOptions::builder()
.ca_file_path(ca_file)
.cert_key_file_path(key_file)
.build();
client_options.tls = Some(Tls::Enabled(tls_opts));
let _client = Client::with_options(client_options)?;
Ok(())
}

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

Para obtener más información sobre cualquiera de los métodos o tipos mencionados en esta guía, consulta la siguiente documentación API:

Volver

Compresión de la red

En esta página