Menu Docs
Página inicial do Docs
/ / /
Driver Rust
/ /

Habilitar e configurar TLS

Nesta página

  • Visão geral
  • Habilitar TLS
  • Configurar certificados
  • Certificados de referência em um cliente
  • Exemplo
  • Informações adicionais
  • Documentação da API

Neste guia, você verá como usar o protocolo TLS para proteger sua conexão com um MongoDB deployment. O TLS é um protocolo criptográfico que protege a comunicação entre seu aplicativo e o MongoDB. Para configurar sua conexão para usar TLS, habilite a opção TLS e forneça seus certificados para validação ao criar um cliente.

Este guia inclui as seguintes seções:

  • Habilitar TLS descreve maneiras de habilitar o TLS em sua conexão

  • Configurar certificados descreve os certificados necessários para configurar o TLS

  • Certificados de Referência em um Cliente fornece um exemplo de como criar uma estrutura TlsOptions para configurar suas opções de TLS

  • Informações adicionais fornecem links para recursos e documentação da API para os tipos e métodos mencionados neste guia

Dica

Você pode habilitar o TLS em uma conexão com sua instância do MongoDB de uma das seguintes maneiras:

  • Definindo a opção tls para true em sua connection string

  • Definir o campo tls de uma instância ClientOptions para a variante Tls::Enabled com uma estrutura TlsOptions vazia e instanciar um Client com essas opções

Selecione entre as seguintes abas Connection String e ClientOptions para ver uma amostra de código correspondente:

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(uri).await?;
let tls_opts = TlsOptions::builder().build();
client_options.tls = Some(Tls::Enabled(tls_opts));
let client = Client::with_options(client_options)?;

Observação

Se sua string de conexão usar um registro DNS SRV incluindo o prefixo mongodb+srv, o TLS será habilitado na sua conexão por padrão.

Para obter uma lista completa das opções de cliente , consulte o guiaOpções de conexão .

Para iniciar com êxito uma solicitação de TLS, seu aplicativo deve apresentar certificados criptográficos para provar sua identidade. Os certificados do seu aplicativo devem ser armazenados como arquivos PEM (Privacidade Melhorada do Email) para habilitar o TLS ao conectar a uma implantação do MongoDB. O formato de arquivo PEM é um formato de container para certificados criptográficos.

Importante

Para uso em produção, recomendamos que seu deployment do MongoDB use certificados válidos gerados e assinados pela mesma autoridade de certificação. Para testar, seu sistema pode usar certificados auto assinados.

A lista a seguir descreve os componentes que seu cliente deve apresentar para estabelecer uma conexão habilitada para TLS:

Componente TLS
Descrição
Autoridade de certificação (CA)
Uma ou mais autoridades de certificação para confiar ao fazer uma conexão TLS
Certificado de cliente
Um certificado digital que permite ao servidor verificar a identidade do seu aplicativo para estabelecer uma conexão de rede criptografada
Chave de certificado
O arquivo de chave privada de certificado do cliente, geralmente incluído no próprio arquivo de certificado
Senha
A senha para descriptografar a chave de cliente privada se ela estiver criptografada

Você deve fazer referência aos seus certificados em sua estrutura TlsOptions para que o servidor possa validá-los antes que o cliente se conecte.

Você deve primeiro converter seus caminhos de arquivo de certificado em tipos PathBuf , portanto, você deve importar esse tipo do módulo std::path. Em seguida, chame as funções do construtor do struct TlsOptions para definir os campos ca_file_path e cert_key_file_path para os caminhos de arquivo do certificado.

Na sua instância do TlsOptions , você pode definir campos opcionais para configurar o TLS na sua conexão. Para fins de teste, você pode definir os campos allow_invalid_certificates e allow_invalid_hostnames .

Definir a opção allow_invalid_certificates como true desabilita a verificação do nome do host, e definir o allow_invalid_hostnames como true desabilita a validação do certificado.

Aviso

Ao especificar uma dessas opções em um ambiente de produção, seu aplicativo ficará desprotegido e potencialmente vulnerável a certificados expirados e a processos externos que se apresentam como instâncias de cliente válidas.

Este exemplo executa a seguinte ação para criar uma instância TlsOptions e uma instância Client configurada para TLS:

  1. Cria variáveis para referenciar os caminhos de arquivo do certificado em instâncias do PathBuf .

  2. Instancia uma estrutura TlsOptions e define os campos ca_file_path e cert_key_file_path para os caminhos de arquivo relevantes.

  3. Passa a TlsOptions instância para a Enabled variante da Tls enumeração .

  4. Define o campo tls da estrutura ClientOptions para a variante Tls::Enabled contendo a instância TlsOptions .

  5. Cria uma instância Client com estas opções.

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(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 saber mais sobre como habilitar o TLS em uma conexão, consulte a seguinte documentação de manual do servidor:

Para saber mais sobre qualquer um dos métodos ou tipos mencionados neste guia, consulte a seguinte documentação da API:

Voltar

Compactação de rede