Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

534
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda