Overview
En el mecanismo de autenticación X.509, el servidor y el cliente utilizan el TLS protocolo para intercambiar certificados de clave pública X.509. Puedes utilizar este mecanismo para autenticarte en MongoDB Atlas, MongoDB Enterprise Advanced y MongoDB Community Edition.
Tip
X.509 Mecanismo
Para aprender cómo utilizar TLS/SSL con el driver de Node.js, consulte la Guía Habilite TLS en una conexión.
Para obtener más información sobre509 los certificados X.,509 consulte Usar certificados x. para autenticar clientes en implementaciones autoadministradas en el manual de MongoDB Server.
Marcadores de posición de código
Los ejemplos de código en esta página utilizan los siguientes marcadores de posición:
<cluster_url>: La dirección de red de tu implementación de MongoDB.<pem_certificate_file_path>:La ruta al archivo de certificado PEM de su cliente.
Para utilizar los ejemplos de código, reemplaza estos marcadores de posición por tus propios valores.
Especificar la autenticación X.509
Puede especificar este mecanismo de autenticación configurando los siguientes parámetros de su cadena de conexión:
Establece el parámetro
authMechanismenMONGODB-X509Establece el parámetro
tlsentrue
Indique la ubicación de su archivo de certificado de cliente como el valor de tlsCertificateKeyFile como parámetro del URI de conexión.
Importante
Siempre codifica URI la ruta del archivo del certificado usando el método encodeURIComponent para asegurar que se analice correctamente.
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);
Opciones de TLS
La siguiente tabla describe las opciones TLS que se pueden establecer en un URI de conexión.
Nombre del parámetro | Tipo | Valor por defecto | Descripción |
|---|---|---|---|
| booleano |
| Especifica si se habilita TLS en la conexión. |
| booleano |
| Especifica si se permite o no certificados inválidos y nombres de host que no coinciden. Cuando se establece en |
| string | Ruta al archivo que contiene una o un paquete de autoridades de certificación confiables que se utilizan en una conexión TLS. | |
| string | Ruta al archivo del certificado de cliente o al archivo de la llave privada del cliente. Si ambos son necesarios, deben concatenarse en un único archivo. | |
| buffer o cadena | string o buffer que contiene la contraseña para descifrar la llave privada del cliente. | |
| booleano |
| Especifica si el controlador permite el uso de un certificado no válido para conectarse. |
| booleano |
| Especifica si el controlador genera un error cuando hay una discrepancia entre el hostname del servidor y el hostname del certificado TLS. |