Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

533
Vistas
mangosta conectarse con CA_CERT usando SSL digital ocean

Cómo conectar mongodb con la base de datos digital del océano usando mongoose. Probé de esta manera no funciona. Aunque en local dice Error: ENAMETOOLONG: nombre demasiado largo, abierto al CA_CERT. Por favor guíe

 mongoose .connect(process.env.HOST, { useNewUrlParser: true, useCreateIndex: true, ssl: true, sslCA: process.env.CA_CERT.replace(/\\n/g, '\n') })
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

El siguiente enfoque funcionó para mí

 const mongoose = require("mongoose"); const colors = require("colors"); const path = require("path"); module.exports = async (server) => { try { let mongoCertPath = path.resolve("./config/ca-certificate.crt"); if (process.env.CA_CERT) { fs.writeFileSync(mongoCertPath, process.env.CA_CERT); } await mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true, tlsCAFile: mongoCertPath }); console.log("mongo connection successful..".yellow); server.listen(process.env.PORT || 5000, () => console.log( `server running on ${process.env.NODE_ENV} mode, port ${process.env.PORT}..` .yellow ) ); } catch (error) { console.log("mongo connection failed..".red); console.log(error); process.exit(1); } };

mi .env se ve así

 MONGO_URI = mongodb+srv://doadmin:xxxxxx@db-mongodb-blrxx1-xxxxx-xxxxx.mongo.ondigitalocean.com/admin?authSource=admin&replicaSet=db-mongodb-blr1-xxxxx&tls=true
over 4 years ago · Santiago Trujillo Denunciar

0

Como entiendo, Mongoose no tiene ninguna propiedad para configurar el contenido TLS CRT (variable CA_CERT env de DigitalOcean), decidí crear un archivo CRT sobre la marcha y luego usarlo para conectarme a la base de datos, luego eliminar el archivo creado.

 const filenameToCreate = 'test.crt'; fs.writeFileSync(filenameToCreate, process.env.CA_CERT); mongoose.connect(dbConnectionUri, { useNewUrlParser: true, useUnifiedTopology: true, tlsCAFile: filenameToCreate }).then((ers) => { app.listen(port, () => console.log(`server is listening on ${port}`)); }).catch(err => { console.log(err); }).finally(() => { fs.unlinkSync(filenameToCreate); })

No estoy seguro de que este sea un enfoque aceptable.

over 4 years ago · Santiago Trujillo Denunciar

0

debe tener un certificado de CA en el almacenamiento local. este código usado con express y babel:

importar fs desde 'fs'; importar mangosta de 'mangoose';

let mongoCertPath = "./SSL/ca-certificate.crt";

 if (fs.existsSync(mongoCertPath)) { mongoose.Promise=global.Promise; mongoose.connect(process.env.MONGO_URI,{ useNewUrlParser: true, useUnifiedTopology: true, ssl: true, tlsCAFile: mongoCertPath }).then( ()=>{ console.log('conectado a digitalOcean mongoDB: db_default'); }, err=>{console.log('error conectando digitalOcean mongoDB:'+err);} ); }else{ console.log('no existe el -> SSL ca-certificate.crt') }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda