Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

291
Views
Mongoose no envía certificado SSL al servidor MongoDB

Tengo problemas con el uso de algunos certificados SSL autofirmados con Mongoose. Lo que me preocupa es que puedo conectarme al servidor de la base de datos sin problemas con el cliente Mongo Node normal, pero cuando pruebo la conexión usando exactamente la misma configuración con Mongoose.createConnection, aparece un mensaje de error que dice '[conn1 ] ningún certificado SSL proporcionado por peer' cuando verifico los registros de Mongod.

Este es el código que uso para conectarme con MongoClient.connect (funciona):

 var MongoClient = require('mongodb').MongoClient var fs = require('fs') // Read the certificates const ca = [fs.readFileSync(process.env.caPath)]; const cert = fs.readFileSync(process.env.certPath); let urlPath = ["mongodb://", username, ":", password, "@", dburl, ":", port, "/collection?&ssl=true"] let url = urlPath.join('') // Connect validating the returned certificates from the server const options = { server: { ssl: true, sslValidate: true, sslCA: ca, sslCert: cert } } MongoClient.connect(url, options, function(err, db) { do stuff })

Y este es el código que usa Mongoose.createConnection (no funciona):

 const mongoose = require('mongoose'); const fs = require('fs') let urlPath = ["mongodb://", username, ":", password "@", dburl, ":", port, "/collection?&ssl=true"] let url = urlPath.join('') var ca = [fs.readFileSync(process.env.caPath, 'utf8')]; var cert = fs.readFileSync(process.env.certPath, 'utf8'); const options = { server: { ssl: true, sslValidate: true, sslCA: ca, sslCert: cert } } const connection = mongoose.createConnection(url, options)

De acuerdo con los documentos de Mongoose , esta parece ser la forma correcta de conectarse, y para agregar a la rareza, pasar las opciones del servidor a Mongoose.connect también parece funcionar.

¡Gracias!

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Tuve el mismo problema, pero descubrí que era porque había .pem cat como se sugiere en los documentos de mongodb).

Pero se soluciona fácilmente, solo especifique el mismo archivo en sslCert: y sslKey: así:

 const options = { server: { ssl: true, sslValidate: true, sslCA: ca, sslCert: cert, sslKey: cert } }

En mi caso, no fue necesario especificar ni authMechanism ni authSource .

over 4 years ago · Santiago Trujillo Report

0

Debe configurar algunas opciones de autenticación adicionales ( authMechanism y authSource ) en mongoose.connect() para especificar el certificado SSL. Ver: https://docs.mongodb.com/manual/reference/connection-string/#authentication-options

Estos se pueden especificar como opciones para mangosta así: options.auth = { authMechanism: 'MONGODB-X509', authSource: '$external' }

luego conéctese con esas opciones:

this.mongoose.connect(uri, options, (err) => { ...

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!