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

2.2K
Visualizações
nodejs: error en el certificado autofirmado en la cadena de certificados

Tengo un problema con las solicitudes https del lado del cliente.

Un fragmento puede verse así:

 var fs = require('fs'); var https = require('https'); var options = { hostname: 'someHostName.com', port: 443, path: '/path', method: 'GET', key: fs.readFileSync('key.key'), cert: fs.readFileSync('certificate.crt') } var requestGet = https.request(options, function(res){ console.log('resObj', res); }

Lo que obtengo es Error: certificado autofirmado en la cadena de certificados.

Cuando uso Postman, puedo importar el certificado y la clave del cliente y usarlos sin ningún problema. ¿Hay alguna solución disponible? También me gustaría que me dieran algunas luces sobre cómo el cartero maneja los certificados y funciona.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Opción 1: deshabilitar la advertencia (útil para desarrolladores)

Por su pregunta, supongo que está haciendo esto en desarrollo, ya que está utilizando un certificado autofirmado para la comunicación SSL.

Si ese es el caso, agregue como una variable de entorno donde esté ejecutando el nodo

 export NODE_TLS_REJECT_UNAUTHORIZED='0' node app.js

o ejecutar el nodo directamente con

 NODE_TLS_REJECT_UNAUTHORIZED='0' node app.js

Esto le indica a Node que permita certificados que no son de confianza (no confiable = no verificado por una autoridad de certificación)

Si no desea establecer una variable de entorno o necesita hacer esto para varias aplicaciones, npm tiene una configuración strict-ssl que establece en false

 npm config set strict-ssl=false

Opción 2: cargar en el certificado de CA, como cartero (útil para probar con TLS)

Si ya tiene un certificado de CA como el cartel que mencionó @kDoyle, puede configurarlo en cada solicitud (gracias @nic ferrier).

 let opts = { method: 'GET', hostname: "localhost", port: listener.address().port, path: '/', ca: fs.readFileSync("cacert.pem") }; https.request(opts, (response) => { }).end();

Opción 3: use un certificado SSL adecuado de una fuente confiable (útil para la producción)

letsencrypt.org es gratuito, fácil de configurar y las claves se pueden rotar automáticamente. https://letsencrypt.org/docs/

over 4 years ago · Santiago Trujillo Relatório

0

Puede solucionar este problema usando NODE_TLS_REJECT_UNAUTHORIZED=0 en la terminal o insertando la siguiente línea dentro del archivo JS.

 process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0;

Tenga en cuenta que esto es un truco y no debe usarse en producción.

Si está utilizando Windows, ejecute el siguiente comando en el símbolo del sistema:

 set NODE_TLS_REJECT_UNAUTHORIZED=0

Después de eso, npm install <my-package> funcionará.

over 4 years ago · Santiago Trujillo Relatório

0

Puede escribir el comando npm config set strict-ssl false

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