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

535
Views
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 answers
Answer question

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 Report

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 Report

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 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!