Overview
En el mecanismo de autenticación X., el servidor y el cliente utilizan el509 ProtocoloTLS para intercambiar 509 certificados de clave pública X.. Puede usar este mecanismo para autenticarse en MongoDB Atlas, MongoDB Enterprise Advanced y MongoDB Community Edition.
Tip
Mecanismo X.509
Para aprender a usar TLS/SSL con el controlador Node.js, consulte la Habilitar TLS en una guía de 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 de 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.
Especifique la autenticación X.509
Puede especificar este mecanismo de autenticación configurando los siguientes parámetros de su cadena de conexión:
Establezca el parámetro
authMechanismenMONGODB-X509Establezca el parámetro
tlsentrue
Pase la ubicación de su archivo de certificado de cliente como el valor de tlsCertificateKeyFile como parámetro de la URI de conexión.
Importante
Siempre codifique mediante URI la ruta del archivo del certificado utilizando el encodeURIComponent método para garantizar 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 debe habilitar TLS en la conexión. |
| booleano |
| Especifica si se permiten certificados no válidos y nombres de host no coincidentes. Si se establece en |
| string | Ruta al archivo que contiene una sola autoridad de certificación o un paquete de autoridades de certificación confiables utilizadas en una conexión TLS. | |
| string | Ruta al archivo del certificado del cliente o al archivo de la clave privada del cliente. Si se requieren ambos, deben concatenarse en un solo archivo. | |
| buffer o cadena | Cadena o búfer que contiene la contraseña para descifrar la clave privada del cliente. | |
| booleano |
| Especifica si el controlador permite que se utilice un certificado no válido para conectarse. |
| booleano |
| Especifica si el controlador genera un error cuando hay una discrepancia entre el nombre de host del servidor y el nombre de host del certificado TLS. |