Menu Docs
Página inicial do Docs
/ / /
Laravel MongoDB
/ /

Habilitar e configurar TLS

Nesta página

  • Visão geral
  • Habilitar TLS
  • Configurar certificados
  • Certificados de Referência
  • Informações adicionais

Neste guia, você aprenderá a usar o protocolo TLS para proteger sua conexão com o MongoDB deployment. Para configurar sua conexão para usar TLS, habilite a opção TLS e, opcionalmente, forneça seus certificados para validação no arquivo config/database.php do seu aplicativo.

Dica

Para saber mais sobre o TLS, consulte o verbete da Wikipedia sobre Transport Layer Security.

No arquivo config/database.php do seu aplicativo, você pode habilitar o TLS em uma conexão com seu sistema do MongoDB de uma das seguintes maneiras:

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

  • Definindo a opção tls para true na propriedade options da sua entrada de conexão mongodb

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

'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 uma lista completa de opções de conexão, consulte Opções de conexão .

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 iniciar com êxito uma solicitação de TLS, seu aplicação pode precisar apresentar certificados criptográficos para provar sua identidade. Os certificados do seu aplicativo devem ser armazenados como arquivos PEM para habilitar o TLS durante a conexão.

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 pode 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. Você pode passar o caminho deste arquivo para a opção tlsCAFile .
Certificado de cliente
Um certificado digital que permite que o servidor verifique a identidade do seu aplicativo para estabelecer uma conexão de rede criptografada. Você pode passar o caminho deste arquivo para a opção tlsCertificateKeyFile .
Chave de certificado
O arquivo de chave privada de certificado do cliente . Essa chave geralmente é incluída no próprio arquivo de certificado. Se você precisar fornecer este item, o certificado e a chave devem ser concatenados em um arquivo que você pode passar para a opção tlsCertificateKeyFile .
Senha
A senha para descriptografar a chave de cliente privada se estiver criptografada. Você pode passar o caminho deste arquivo para a opção tlsCertificateKeyFilePassword .

Se necessário, você deve fazer referência aos seus certificados ao configurar a conexão mongodb para que o servidor possa validá-los antes que o cliente se conecte.

Recomendamos que você faça referência aos seus certificados e defina outras opções de TLS na propriedade options da configuração de conexão em vez de na connection string. Isso melhora a legibilidade do código em seu aplicativo.

Defina as seguintes opções na propriedade options para fazer referência aos seus certificados:

  • tlsCAFile

  • tlsCertificateKeyFile

  • tlsCertificateKeyFilePassword

Observação

Para fins de teste, você pode definir as seguintes opções como true para desativar a validação:

  • tlsAllowInvalidCertificates

  • tlsAllowInvalidHostnames

Ou você pode definir a opção tlsInsecure como true para definir implicitamente ambas as opções anteriores.

Especificar essas opções em um ambiente de produção pode tornar seu aplicativo inseguro. Para saber mais, consulte a referência Opções de conexão no manual do servidor MongoDB.

O exemplo a seguir configura uma conexão com o TLS ativado:

'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 saber mais sobre como definir as opções de URI, consulte a documentação da API do MongoDB\\Driver\\Manager::__construct().

Para saber mais sobre como habilitar o TLS em uma conexão, consulte a seguinte documentação de manual do servidor:

Voltar

Opções de conexão