Errore SSL: CERT_UNTRUSTED durante l'utilizzo del comando npm


159

Sto cercando di installare Express Framework usando il comando npm ma ricevendo il seguente errore.

il messaggio di errore è

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

aiutami a risolvere

Risposte:


316

Puoi bypassare https usando i comandi seguenti:

npm config set strict-ssl false

o imposta l'URL del registro da https o http come di seguito:

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

Personalmente, credo che bypassare https non sia la vera soluzione, ma possiamo usarlo come soluzione alternativa.


13
Soluzione un po 'pericolosa, ma piacevole nel mondo reale.
Bernard Saucier,

1
È possibile rimuovere l'opzione di bypass una volta che abbiamo usato il comando sopra. Se sì, come possiamo rimuovere l'opzione di bypass?
rash111,

1
@ rash111 Presumo che l'impostazione su true dovrebbe funzionare:npm config set strict-ssl true
Gromer,

10
"bella soluzione del mondo reale" ... Questo non è affatto carino, a meno che non ti piace essere hackerato.
trusktr,

Grazie! Ciò è necessario anche quando si utilizza npm in una VM VirtualBox che esegue Ubuntu 14.04. Questo è l'unico modo per correggere l'errore CERT, arriva anche quando il registro è configurato su "http://registry.npmjs.org/"quale è l'impostazione predefinita.
Prahlad Yeri,

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

Aggiorna la tua installazione node.js. I seguenti comandi dovrebbero farlo (da qui ):

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

Modifica: va bene, se hai davvero un buon motivo per eseguire una versione antica del software, npm set ca nullrisolverà il problema. È successo perché il certificato npm incorporato è scaduto nel corso degli anni.


3
Attualmente sto usando due versioni precedenti, qual è il tuo punto, non riuscivo a capire
Sudip7,

1
Il mio punto è: quelle versioni sono antiche e i certificati npm integrati in quelle sono già scaduti. Se installi versioni recenti, funzioneranno.
alex,

1
Ho provato a installare l'ultima versione e ho riscontrato qualche problema durante l'installazione. Qualcuno nel SO mi ha suggerito di installare la versione precedente, è stata installata correttamente, ma ora npm non funziona. Io sto dando si collega alla precedente interrogazione stackoverflow.com/questions/21850871/...
Sudip7

24
Ho scoperto che l'esecuzione dà sudo npm cache clean -fquindi sudo npm install -g nun errore CERT_UNTRUSTED dopo il secondo comando.
fuzzi,

2
Secondo il link di riferimento: "Questo metodo di aggiornamento del nodo è ora instabile e non deve essere utilizzato. Il modo migliore per gestire le versioni di Node.js è utilizzare NVM: Node Version Management. !"
chus

22

Ho avuto lo stesso problema e finalmente ho capito che la mia versione del nodo è vecchia. Ad esempio, è possibile installare la versione corrente del nodo LTS attivo in Ubuntu procedendo come segue:

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

Le istruzioni di installazione per più versioni e sistemi sono disponibili al seguente link:

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


Ha lavorato su Ubuntu 14.
Vignesh Chinnaiyan il

9

Penso di aver ottenuto il motivo dell'errore sopra riportato. È il proxy aziendale (rete privata virtuale) fornito per funzionare nella rete client. Senza quella connessione ho spesso incontrato lo stesso problema, sia che si tratti di build ma npm install.


5

Se sei dietro un proxy aziendale, prova questa impostazione per npm con il proxy della tua azienda:

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

3
Se lavori in una grande organizzazione è comune avere un server proxy tra te e Internet. A volte causa questo problema. (Lo ha fatto per me) Un possibile test per questo sarebbe quello di togliere il computer dalla rete e npm install express da casa.
Michael Oakley,

2

Da quando sono inciampato sul post tramite Google:

Prova a usarlo npm cisarà molto più di un npm install.

Dal manuale:

In breve, le principali differenze tra l'utilizzo di npm install e npm ci sono:

  • Il progetto deve avere un pacchetto-lock.json o npm-shrinkwrap.json esistente.
  • Se le dipendenze nel blocco del pacchetto non corrispondono a quelle in package.json, npm ci uscirà con un errore, invece di aggiornare il blocco del pacchetto.
  • npm ci può installare interi progetti alla volta: non è possibile aggiungere singole dipendenze con questo comando.
  • Se un node_modules è già presente, verrà automaticamente rimosso prima che npm ci inizi l'installazione.
  • Non scriverà mai su package.json o su uno dei pacchetti-lock: le installazioni sono essenzialmente bloccate.

1

Reinstallare il nodo, quindi aggiornare npm.

Per prima cosa ho rimosso il nodo

apt-get purge node

Quindi installare il nodo in base alla distribuzione. Documenti qui .

Poi

npm install npm@latest -g
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.