我在ubuntu上使用npm v1.0.104/node 0.6.12 -当我试图通过npm安装任何新模块时,我收到了下面的错误。IO之前使用http,而不是HTTPS &我想知道这是否会导致npm/unsigned certs的问题)。当npm试图解析“https://registry.npmjs.org”URL时,错误就会弹出。有没有办法我可以忽略错误,或者找到/添加证书到可信存储,以便继续使用npm。

任何关于需要做什么来解决问题的见解都将受到感谢(如果可能的话,我更喜欢通过配置来解决问题,而不是重新安装)。

错误:" SSL错误:SELF_SIGNED_CERT_IN_CHAIN"

完整的信息:

npm ERR! Error: SSL Error: SELF_SIGNED_CERT_IN_CHAIN
npm ERR!     at ClientRequest.<anonymous> (/usr/lib/node_modules/npm/node_modules/request/main.js:252:28)
npm ERR!     at ClientRequest.emit (events.js:67:17)
npm ERR!     at HTTPParser.onIncoming (http.js:1261:11)
npm ERR!     at HTTPParser.onHeadersComplete (http.js:102:31)
npm ERR!     at CleartextStream.ondata (http.js:1150:24)
npm ERR!     at CleartextStream._push (tls.js:375:27)
npm ERR!     at SecurePair.cycle (tls.js:734:20)
npm ERR!     at EncryptedStream.write (tls.js:130:13)
npm ERR!     at Socket.ondata (stream.js:38:26)
npm ERR!     at Socket.emit (events.js:67:17)
npm ERR! Report this *entire* log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>
npm ERR! 
npm ERR! System Linux 2.6.38-13-generic
npm ERR! command "node" "/usr/bin/npm" "install" "jed"
npm ERR! node -v v0.6.12
npm ERR! npm -v 1.0.104

当前回答

把它放在命令之前似乎可以工作NODE_TLS_REJECT_UNAUTHORIZED=0。 NODE_TLS_REJECT_UNAUTHORIZED=0 npm…

最好弄清楚如何使节点将自签名证书视为有效的。由于某些原因,上面的严格ssl建议对我不起作用。如果您了解安全影响并需要临时快速修复,这是我在谷歌搜索错误期间在一些随机github问题中发现的。

其他回答

执行以下命令帮助解决该问题:

npm config set strict-ssl false

目前我还不能评论它是否会引起任何其他问题。

npm config set strict-ssl false -g

在全球范围内保存

现在我只是把注册表URL从https切换到http。是这样的:

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

我有相同的SSL自签名证书错误,因为公司代理。我在安装node-gyp时遇到了问题。我尝试先卸载Angular/cli,然后安装node-gyp,然后尝试重新安装Angular cli

npm uninstall -g @angular/cli
npm install -g node-gyp
npm install -g @angular/cli

效果很好

关闭SSL似乎是一个非常糟糕的主意。npm的博客解释说他们不再支持自签名证书。他们建议通过npm install npm -g来升级npm,但是我当然得到了同样的SELF_SIGNED_CERT_IN_CHAIN错误。我更新了node, npm也随之更新了。具体的过程取决于您最初是如何安装节点的。