Error de SSL: CERT_UNTRUSTED al usar el comando npm


159

Estoy tratando de instalar express framework usando el comando npm pero obtengo el siguiente error.

mensaje de error es

E:\myFindings\nodejs_programs\node>npm install -g express
npm http GET https://registry.npmjs.org/express
npm ERR! Error: SSL Error: CERT_UNTRUSTED
npm ERR!     at ClientRequest.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\request\main.js:409:26)
npm ERR!     at ClientRequest.g (events.js:185:14)
npm ERR!     at ClientRequest.EventEmitter.emit (events.js:88:17)
npm ERR!     at HTTPParser.parserOnIncomingClient [as onIncoming] (http.js:1445:7)
npm ERR!     at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:111:23)
npm ERR!     at CleartextStream.socketOnData [as ondata] (http.js:1356:20)
npm ERR!     at CleartextStream.CryptoStream._push (tls.js:396:27)
npm ERR!     at SecurePair.cycle (tls.js:751:20)
npm ERR!     at EncryptedStream.CryptoStream.write (tls.js:131:13)
npm ERR!     at Socket.ondata (stream.js:38:26)
npm ERR!  [Error: SSL Error: CERT_UNTRUSTED]
npm ERR! You may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "express"
npm ERR! cwd E:\myFindings\nodejs_programs\node
npm ERR! node -v v0.8.0
npm ERR! npm -v 1.1.32
npm ERR! message SSL Error: CERT_UNTRUSTED
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     E:\myFindings\nodejs_programs\node\npm-debug.log
npm ERR! not ok code 0

ayúdame a resolver

Respuestas:


316

Puede omitir https usando los siguientes comandos:

npm config set strict-ssl false

o configure la URL del registro desde https o http como a continuación:

npm config set registry="http://registry.npmjs.org/"

Sin embargo, personalmente creo que omitir https no es la solución real, pero podemos usarlo como una solución alternativa.


13
Algo inseguro, pero buena solución del mundo real.
Bernard Saucier

1
¿Es posible eliminar la opción de omisión una vez que usamos el comando anterior? En caso afirmativo, ¿cómo podemos eliminar la opción de derivación?
rash111

1
@ rash111 Supongo que establecerlo en verdadero debería funcionar:npm config set strict-ssl true
Gromer

10
"buena solución del mundo real" ... Esto no es nada agradable, a menos que te guste ser hackeado.
trusktr

¡Gracias! Esto también es necesario cuando se usa npm en una VM VirtualBox que ejecuta Ubuntu 14.04. Esta es la única forma de corregir el error CERT, incluso cuando el registro está configurado según "http://registry.npmjs.org/"el valor predeterminado.
Prahlad Yeri

53
npm ERR! node -v v0.8.0
npm ERR! npm -v 1.1.32

Actualice su instalación de node.js. Los siguientes comandos deberían hacerlo (desde aquí ):

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

Editar: está bien, si realmente tiene una buena razón para ejecutar una versión antigua del software, npm set ca nullsolucionará el problema. Sucedió porque el certificado npm incorporado ha expirado con los años.


3
Estoy utilizando actualmente por encima de dos versiones, lo que es su punto, no podía entender
Sudip7

1
Mi punto es: esas versiones son antiguas, y los certificados npm incorporados ya están caducados. Si instala versiones recientes, funcionarán.
alex

1
Intenté instalar la última versión y tuve algunos problemas durante la instalación. Alguien en el SO me sugirió instalar la versión anterior, se instaló correctamente, pero ahora npm no funciona. Te estoy dando un enlace a mi pregunta anterior stackoverflow.com/questions/21850871/…
Sudip7

24
He encontrado que la ejecución sudo npm cache clean -fse sudo npm install -g nda un error CERT_UNTRUSTED después de la segunda orden.
fuzzi

2
Según el enlace al que se hace referencia: "Este método de actualización de nodo ahora es inestable y no debe usarse. La mejor manera de administrar las versiones de Node.js es usar NVM: Node Version Management ".
chus

22

Tuve el mismo problema y finalmente entendí que mi versión de nodo es antigua. Por ejemplo, puede instalar la versión actual del nodo LTS activo en Ubuntu siguiendo estos pasos:

sudo apt-get update
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install nodejs -y

Las instrucciones de instalación para más versiones y sistemas se pueden encontrar en el siguiente enlace:

https://github.com/nodesource/distributions/blob/master/README.md


Trabajó en Ubuntu 14.
Vignesh Chinnaiyan

9

Creo que obtuve la razón del error anterior. Es el proxy corporativo (red privada virtual) provisto para trabajar en la red del cliente. Sin esa conexión, con frecuencia me enfrento al mismo problema, ya sea maven build o npm install.


5

Si está detrás de un proxy corporativo, pruebe esta configuración para npm con el proxy de su empresa:

npm --https-proxy=http://proxy.company.com install express -g

3
Si trabaja en una organización grande, es común tener un servidor proxy entre usted e Internet. A veces causa este problema. (Lo hizo para mí) Una posible prueba para esto sería quitar la computadora de la red e instalar npm express desde casa.
Michael Oakley

2

Desde que me topé con la publicación a través de google:

Intenta usarlo npm ciserá mucho más que un npm install.

Del manual:

En resumen, las principales diferencias entre usar npm install y npm ci son:

  • El proyecto debe tener un paquete-lock.json o npm-shrinkwrap.json existentes.
  • Si las dependencias en el bloqueo del paquete no coinciden con las del paquete.json, npm ci saldrá con un error, en lugar de actualizar el bloqueo del paquete.
  • npm ci solo puede instalar proyectos completos a la vez: las dependencias individuales no se pueden agregar con este comando.
  • Si un node_modules ya está presente, se eliminará automáticamente antes de que npm ci comience su instalación.
  • Nunca escribirá en package.json ni en ninguno de los bloqueos de paquetes: las instalaciones están esencialmente congeladas.

1

Vuelva a instalar el nodo, luego actualice npm.

Primero eliminé el nodo

apt-get purge node

Luego instale el nodo de acuerdo con la distribución. Documentos aquí .

Luego

npm install npm@latest -g
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.