gyp ERR,Npm 无法获取本地颁发者证书

Posted

技术标签:

【中文标题】gyp ERR,Npm 无法获取本地颁发者证书【英文标题】:gyp ERR, Npm is unable to get local issuer certificate 【发布时间】:2018-03-23 03:05:15 【问题描述】:

我正在安装全新的 Windows 10。唯一的事情是我安装的 cygwin 以在 cmd 中获取 unix 命令。

当我输入 npm install -g @angular/cli 时,它会下载必要的文件,但我收到一个错误:

gyp ERR! configure error
gyp ERR! stack Error: unable to get local issuer certificate
gyp ERR! stack     at Error (native)
gyp ERR! stack     at TLSSocket.<anonymous> (_tls_wrap.js:1092:38)
gyp ERR! stack     at emitNone (events.js:86:13)
gyp ERR! stack     at TLSSocket.emit (events.js:185:7)
gyp ERR! stack     at TLSSocket._finishInit (_tls_wrap.js:610:8)
gyp ERR! stack     at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:440:38)
gyp ERR! System Windows_NT 10.0.15063
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\user\\AppData\\Roaming\\npm\\node_modules\\@angular\\cli\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd C:\Users\user\AppData\Roaming\npm\node_modules\@angular\cli\node_modules\node-sass
gyp ERR! node -v v6.11.2
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
Build failed with error code: 1

我编辑了 npm 配置文件,例如“npm config edit”。在打开的文件中,我添加了以下设置:

strict-ssl=false
http_proxy=null
proxy=null

但这不起作用,我仍然收到同样的错误。更重要的是,npm install 也以相同的结果中断。

【问题讨论】:

你在防火墙后面吗? 【参考方案1】:

我有同样的问题。 下面解决了我的问题

set NODE_TLS_REJECT_UNAUTHORIZED=0 然后再次npm install

您可以参考:https://github.com/nodejs/node-gyp/issues/695

【讨论】:

适合作为开发的临时修复,但在部署时应避免这样做,因为它会使您面临中间人攻击。更好的是在您的 VM 或容器中正确设置 SSL。 在我的 powershell 上,我需要使用 'set NODE_TLS_REJECT_UNAUTHORIZED 0' 进行设置【参考方案2】:

@Emon 的回答是正确的,但是对于 Linuz 用户来说,命令显然是:

export NODE_TLS_REJECT_UNAUTHORIZED=0

【讨论】:

【参考方案3】:

在您的系统上找到证书包,然后将环境变量 NODE_EXTRA_CA_CERTS 设置为该路径。

find / -name *.crt

/etc/ssl/certs/ca-certificates.crt
/usr/share/ca-certificates/full_bundle.crt
/usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_CA.crt
/usr/share/ca-certificates/mozilla/E-Tugra_Certification_Authority.crt
...

您应该得到很多结果,因此您必须查看它们以确定正确的 crt 文件。那么:

export NODE_EXTRA_CA_CERTS=/usr/share/ca-certificates/full_bundle.crt

【讨论】:

以上是关于gyp ERR,Npm 无法获取本地颁发者证书的主要内容,如果未能解决你的问题,请参考以下文章

Laravel/MailChimp:无法获取本地颁发者证书

证书验证失败:无法获取本地颁发者证书

PHP - SSL 证书错误:无法获取本地颁发者证书

PHP - SSL 证书错误:无法获取本地颁发者证书

PHP - SSL 证书错误:无法获取本地颁发者证书

SourceTree 和 Stash:无法获取本地颁发者证书