错误的ERR!代码UNABLE_TO_GET_ISSUER_CERT_LOCALLY

时间:2017-08-25 15:25:43

标签: node.js reactjs npm create-react-app

我正在尝试创建反应应用程序的所有方法。我尝试使用maven,现在我正在尝试使用Facebook Incubators的crate-react-app构建系统。

当我尝试在npm环境中运行命令create-react-app my-app时,它可以在我的个人系统上运行,没有任何问题。但是当我在我的工作环境中尝试相同的命令时,我在命令提示符

上遇到了这个错误
npm ERR! node v6.10.2
npm ERR! npm  v3.10.10
npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY

npm ERR! unable to get local issuer certificate
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

14 个答案:

答案 0 :(得分:148)

互联网搜索的快速解决方案是npm config set strict-ssl false,幸运的是它有效。但作为我工作环境的一部分,我被限制为将strict-ssl标志设置为false。

后来我找到了一个安全可靠的解决方案,

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

这非常有效,我没有将strict-ssl标志设置为false,因此我得到了成功消息Happy Hacking!

答案 1 :(得分:8)

尝试完所有解决方案后,我都能找到:

  • 关闭严格的SSL:npm config set strict-ssl=false
  • 将注册表更改为http而不是https:npm config set registry http://registry.npmjs.org/
  • 更改我的cafile设置:npm config set cafile /path/to/your/cert.pem
  • 停止拒绝未知的CA:set NODE_TLS_REJECT_UNAUTHORIZED=0

对于我来说,目前看来效果最好的解决方案是使用NODE_EXTRA_CA_CERTS环境变量,该变量扩展了现有的CA,而不是用.npmrc文件中的cafile选项替换它们。您可以通过在终端机中输入以下内容进行设置:NODE_EXTRA_CA_CERTS=path/to/your/cert.pem

当然,每次设置此变量都会很烦人,因此我将其添加到了bash配置文件中,以便每次打开终端时都可以对其进行设置。如果您还没有~/.bash_profile文件,请创建一个。然后在该文件的末尾添加export NODE_EXTRA_CA_CERTS=path/to/your/cert.pem。然后,删除.npmrc中的cafile设置。

答案 2 :(得分:6)

可能发生的事情是你的工作解密某些流量并使用他们的证书(你可能已经在你的钥匙串或受信任的根证书中)对其进行重新加密。

如果您正在使用节点7或更高版本我发现此修复程序与node和node-gyp兼容(对于Windows,您需要以不同方式执行此操作,但您基本上只需要添加此环境变量) :

export NODE_EXTRA_CA_CERTS="absolute_path_to_your_certificates.pem"

pem文件可以有多个证书:https://nodejs.org/api/cli.html#cli_node_extra_ca_certs_file

确保您的证书采用正确的pem格式(您需要真正的换行符而不是文字\n

我似乎无法使用.~路径

此修复程序基本上告诉npm和node-gyp使用针对常规CA的检查,但是当它出现时也允许该证书

理想情况下,您可以使用系统的可信证书,但不幸的是情况并非如此。

答案 3 :(得分:4)

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

如果此代码技巧对您不起作用,则尝试从主目录运行您的应用程序。。它对我有用。

答案 4 :(得分:3)

相信我,这将为您工作:

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

答案 5 :(得分:3)

npm config set strict-ssl=false 对我有用。

答案 6 :(得分:2)

有相同的错误。看起来它与SSL证书有关。如果您将NPM用于公共软件包(不需要HTTPS的安全性),则可以使用以下命令关闭严格的SSL密钥验证。

如果您只是想一次安装一些公开可用的软件包,这可能是最简单的解决方法。

npm config set strict-ssl=false

答案 7 :(得分:2)

对我来说问题是 VPN,我断开了 VPN 并且“npm i”命令没有失败。

答案 8 :(得分:1)

将NPM repo URL更改为HTTP可以作为快速修复,但我想使用HTTPS。

就我而言,我雇主的代理人(ZScaler)造成了问题(因为它充当了MITM,导致了认证验证问题)

我忘记了我https://github.com/angular/material2/tree/master/src/demo-app对此有帮助而Git(通过HTTPS克隆GitHub回购有同样的问题)和found a script

基本上,它对git执行以下操作:

[F,NC]

并且对于Node,它会将git config --global http.proxy http://gateway.zscaler.net:80/ git config --system http.proxy http://gateway.zscaler.net:80/ 添加到proxy=http://gateway.zscaler.net:80/

的末尾

这解决了我的问题。

答案 9 :(得分:1)

下面的代码非常适合我,这里只用http代替https

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

答案 10 :(得分:1)

当我尝试更新npm时出现此错误,但是在AWS Linux中从yum安装了一个非常老的版本(1.3.6!)。我能够手动安装较新的npm版本,并且一切都已得到纠正。

答案 11 :(得分:1)

就我而言,在某些时候,我将全局配置设置为使用用于项目的证书。

1002A

> dis[1:20,1:17]
       City District Province new_code     1001A     1002A     1003A     1004A     1005A     1006A     1007A     1008A     1009A     1010A     1011A     1012A     1013A
1  七台河市   勃利县 黑龙江省   230921 3944036.1 3944035.8 3944036.0 3944036.1 3944035.9 3944036.0 3944036.0 3944035.7 3944035.5 3944035.9 3944036.0 3944036.1 3944036.4
2  七台河市   新兴区 黑龙江省   230902 3935110.4 3935110.1 3935110.3 3935110.4 3935110.3 3935110.3 3935110.3 3935110.0 3935109.8 3935110.2 3935110.3 3935110.4 3935110.7
3  七台河市   桃山区 黑龙江省   230903 3936322.2 3936321.9 3936322.1 3936322.2 3936322.1 3936322.1 3936322.1 3936321.8 3936321.6 3936322.0 3936322.1 3936322.2 3936322.5
4  七台河市 茄子河区 黑龙江省   230904 3973829.5 3973829.2 3973829.4 3973829.4 3973829.3 3973829.4 3973829.4 3973829.1 3973828.9 3973829.3 3973829.3 3973829.5 3973829.8
5    万宁市   万宁市   海南省   469006  287491.0  287490.7  287490.9  287490.9  287490.8  287490.9  287490.9  287490.6  287490.4  287490.7  287490.8  287491.0  287491.4
6    三亚市   三亚市   海南省   460300  215790.5  215790.1  215790.5  215790.5  215790.4  215790.5  215790.4  215790.2  215790.0  215790.2  215790.4  215790.5  215791.3
7    三明市   三元区   福建省   350403 1375145.8 1375145.6 1375145.7 1375145.7 1375145.6 1375145.7 1375145.7 1375145.3 1375145.2 1375145.6 1375145.6 1375145.8 1375145.9
8    三明市   大田县   福建省   350425 1359911.1 1359910.9 1359911.0 1359911.1 1359911.0 1359911.1 1359911.0 1359910.7 1359910.5 1359910.9 1359911.0 1359911.2 1359911.2
9    三明市   宁化县   福建省   350424 1332689.1 1332688.9 1332689.0 1332689.1 1332689.0 1332689.1 1332689.1 1332688.7 1332688.5 1332688.9 1332689.0 1332689.2 1332689.3
10   三明市   将乐县   福建省   350428 1413620.0 1413619.7 1413619.8 1413619.9 1413619.8 1413619.9 1413619.9 1413619.5 1413619.4 1413619.8 1413619.8 1413620.0 1413620.1
11   三明市   尤溪县   福建省   350426 1418484.5 1418484.3 1418484.4 1418484.4 1418484.3 1418484.4 1418484.4 1418484.0 1418483.9 1418484.3 1418484.3 1418484.5 1418484.5
12   三明市   建宁县   福建省   350430 1385601.6 1385601.4 1385601.5 1385601.6 1385601.5 1385601.5 1385601.5 1385601.2 1385601.0 1385601.4 1385601.5 1385601.6 1385601.8
13   三明市   明溪县   福建省   350421 1374944.2 1374944.0 1374944.1 1374944.2 1374944.1 1374944.2 1374944.2 1374943.8 1374943.6 1374944.1 1374944.1 1374944.3 1374944.4
14   三明市   梅列区   福建省   350402 1391516.5 1391516.3 1391516.4 1391516.4 1391516.3 1391516.4 1391516.4 1391516.1 1391515.9 1391516.3 1391516.4 1391516.5 1391516.6
15   三明市   永安市   福建省   350481 1338612.1 1338611.9 1338612.0 1338612.1 1338612.0 1338612.1 1338612.0 1338611.7 1338611.5 1338611.9 1338612.0 1338612.2 1338612.2
16   三明市     沙县   福建省   350427 1415087.8 1415087.6 1415087.7 1415087.7 1415087.6 1415087.7 1415087.7 1415087.3 1415087.2 1415087.6 1415087.6 1415087.8 1415087.9
17   三明市   泰宁县   福建省   350429 1408835.1 1408834.9 1408835.0 1408835.1 1408835.0 1408835.1 1408835.0 1408834.7 1408834.5 1408834.9 1408835.0 1408835.1 1408835.3
18   三明市   清流县   福建省   350423 1328607.7 1328607.5 1328607.6 1328607.7 1328607.6 1328607.7 1328607.7 1328607.3 1328607.2 1328607.6 1328607.6 1328607.8 1328607.9
19 三门峡市   义马市   河南省   411281 2059576.9 2059576.5 2059576.8 2059576.9 2059576.8 2059576.8 2059576.8 2059576.6 2059576.3 2059576.6 2059576.8 2059576.9 2059577.5
20 三门峡市   卢氏县   河南省   411224 1961980.5 1961980.1 1961980.4 1961980.5 1961980.4 1961980.5 1961980.4 1961980.2 1961980.0 1961980.2 1961980.4 1961980.5 1961981.2


我打开了文件,删除了该行,npm config list再次起作用。

答案 12 :(得分:1)

遇到以下错误

PS C:\ Users \ chpr \ Documents \ GitHub \ vue-nwjs-hours-tracking> npm 安装vue npm ERR!代码UNABLE_TO_GET_ISSUER_CERT_LOCALLY npm ERR! errno UNABLE_TO_GET_ISSUER_CERT_LOCALLY npm错误!请求 https://registry.npmjs.org/vue失败,原因:无法获得本地 发行人证书

npm ERR!此运行的完整日志可以在以下位置找到:npm ERR!
C:\ Users \ chpr \ AppData \ Roaming \ npm-cache_logs \ 2020-07-29T03_22_40_225Z-debug.log PS C:\ Users \ chpr \ Documents \ GitHub \ vue-nwjs-hours-tracking> PS C:\ Users \ chpr \ Documents \ GitHub \ vue-nwjs-hours-tracking> npm ERR!
C:\ Users \ chpr \ AppData \ Roaming \ npm-cache_logs \ 2020-07-29T03_22_40_225Z-debug.log

以下命令解决了该问题:

npm config set strict-ssl false

答案 13 :(得分:1)

你的操作系统是什么?在 Ubuntu 上,我可以通过运行来修复这个错误

npm config set cafile /etc/ssl/certs/ca-certificates.crt

告诉 npm 使用我系统的证书存储。 Debian 使用相同的系统证书路径,我对其他发行版和操作系统不太熟悉。

(我不喜欢其他所有关闭证书验证并允许中间人攻击的答案。)