使用npm命令时SSL错误:CERT_UNTRUSTED

我试图安装使用npm命令的快速框架,但得到以下错误。

错误信息是

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 

帮我理清一下

您可以使用以下命令绕过https:

 npm config set strict-ssl false 

或从https或http设置registryURL,如下所示:

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

但是,我个人认为绕过https不是真正的解决scheme,但我们可以将其用作解决方法。

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

更新你的node.js安装。下面的命令应该做到这一点(从这里 ):

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

编辑:好吧,如果你真的有一个很好的理由来运行一个古老的软件版本, npm set ca null将解决这个问题。 事情发生了,因为内置npm证书已经过期多年了。

我想我得到了上述错误的原因。 它是为了在客户端networking中工作而提供的公司代理(虚拟专用networking)。 没有这种连接,我经常遇到同样的问题,无论是Maven构build或npm安装。

如果您身在公司代理的后面,请使用您公司的代理尝试以下设置:

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