Visão geral
In the X.509 authentication mechanism, the server and client use the TLS protocol to exchange X.509 public-key certificates. You can use this mechanism to authenticate to MongoDB Atlas, MongoDB Enterprise Advanced, and MongoDB Community Edition.
Dica
X.509 Mecanismo
Para saber como usar o TLS/SSL com o driver Node.js, consulte o guia Habilitar TLS em uma conexão.
Para obter mais informações sobre certificados X.509, consulte Usar x.509 certificados para autenticar clientes em sistemas autogerenciados no manual do MongoDB Server.
Espaços reservados de código
Os exemplos de código nesta página usam os seguintes espaços reservados:
<cluster_url>
: O endereço de rede da sua implantação MongoDB .<pem_certificate_file_path>
: O caminho para o arquivo de certificado PEM do cliente .
Para usar os exemplos de código, substitua esses espaços reservados por seus próprios valores.
Especifique a autenticação X.509
Você pode especificar esse mecanismo de autenticação definindo os seguintes parâmetros da string de conexão:
Configure o parâmetro
authMechanism
paraMONGODB-X509
Configure o parâmetro
tls
paratrue
Passe o local do seu arquivo de certificado do cliente como o valor de tlsCertificateKeyFile
como um parâmetro do URI de conexão.
Importante
Sempre codifique em URI o caminho do arquivo de certificado usando o método encodeURIComponent
para garantir que ele seja analisado corretamente.
const { MongoClient } = require("mongodb"); // Replace the following with values for your environment. const clusterUrl = "<cluster_url>"; const clientPEMFile = encodeURIComponent("<pem_certificate_file_path>"); const authMechanism = "MONGODB-X509"; // Replace the following with your MongoDB deployment's connection string. const uri = `mongodb+srv://${clusterUrl}/?authMechanism=${authMechanism}&tls=true&tlsCertificateKeyFile=${clientPEMFile}`; // Create a new MongoClient const client = new MongoClient(uri); // Function to connect to the server async function run() { try { // Establish and verify connection await client.db("admin").command({ ping: 1 }); console.log("Connected successfully to server"); } finally { // Ensures that the client will close when you finish/error await client.close(); } } run().catch(console.dir);
Opções de TLS
A tabela a seguir descreve as opções de TLS que você pode definir em um URI de conexão.
Nome do Parâmetro | Tipo | Valor padrão | Descrição |
---|---|---|---|
| booleano |
| Especifica se deseja habilitar o TLS na conexão. |
| booleano |
| Especifica se permite certificados inválidos e nomes de host incompatíveis. Quando definido como |
| string | Caminho para o arquivo que contém uma única autoridade de certificação confiável ou um pacote de autoridades de certificação confiáveis usadas em uma conexão TLS. | |
| string | Caminho para o arquivo de certificado do cliente ou o arquivo de chave privada do cliente. Se ambos forem necessários, os dois devem ser concatenados em um único arquivo. | |
| buffer ou string | String ou buffer que contém a senha para descriptografar a chave privada do cliente. | |
| booleano |
| Especifica se o driver permite que um certificado inválido seja usado para se conectar. |
| booleano |
| Especifica se o driver gera um erro quando há uma incompatibilidade entre o nome de host do servidor e o nome do host do certificado TLS. |