Visão geral
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.
Habilitar TLS
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 - tlspara- trueem sua connection string
- Definindo a opção - tlspara- truena propriedade- optionsda sua entrada de conexão- mongodb
Selecione entre as seguintes abas Connection String e Connection Options para ver uma amostra de código correspondente:
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.
Configurar certificados
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  | 
| 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  | 
| 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  | 
| Senha | A senha para descriptografar a chave de cliente privada se estiver criptografada. Você pode passar o caminho deste arquivo para a opção  | 
Certificados de Referência
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>',         ]     ] ] 
Informações adicionais
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: