Din*_*esh 77 node.js npm reactjs create-react-app
我正在尝试创建反应应用程序的所有方法.我尝试过使用maven,现在我正在尝试使用Facebook Incubators的crate-react-app构建系统.
当我试图create-react-app my-app在npm环境中运行命令时,它在我的个人系统上运行没有问题.但是当我在我的工作环境中尝试相同的命令时,我在命令提示符下遇到了这个错误
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>
Din*_*esh 213
我搜索了互联网,并尝试了所有选项.但解决方案没有运气.最后我遇到了npm config set strict-ssl false,幸运的是它奏效了.但这不是正确的方法,因为我在我的工作环境中,我应该被限制为将ssl标志设置为false.
后来我找到了一个安全可行的解决方案.
npm config set registry http://registry.npmjs.org/  
这工作得很好,我Happy Hacking!通过不设置任何ssl标志false 得到了成功消息.
Rya*_*Day 17
在尝试了我能找到的所有解决方案后:
npm config set strict-ssl=falsenpm config set registry http://registry.npmjs.org/npm config set cafile /path/to/your/cert.pemset 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 设置。
Jor*_*dan 12
可能发生的事情是你的工作解密某些流量并用他们的证书(你可能已经在你的钥匙串或受信任的根证书中)重新加密它
如果您正在使用节点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使用检查,但是当它遇到它时也允许这个证书
理想情况下,您可以使用系统的可信证书,但遗憾的是情况并非如此.
Mar*_*nas 12
你的操作系统是什么?在 Ubuntu 上我可以通过运行来修复这个错误
npm config set cafile /etc/ssl/certs/ca-certificates.crt
告诉 npm 使用我系统的证书存储。Debian 使用相同的系统证书路径,我对其他发行版和操作系统不太熟悉。
(我不喜欢所有关闭证书验证并允许中间人攻击的其他答案。)
小智 8
在尝试了上述的几个解决方案后, Zscalar更新策略帮助我进行网络调用。
在 Zscalar 更新之前尝试过的解决方法:
Zscalar 应用程序中的更新策略(以黄色突出显示)帮助我解决了“无法获取本地颁发者证书”问题。
小智 7
相信我,这对你有用:
    npm config set registry http://registry.npmjs.org/  
就我而言,在某些时候我将全局配置设置为使用适用于项目的证书。
npm config list
/path/to/global/.npmrc
NODE_EXTRA_CA_CERTS = "./certs/chain.pem"
我打开文件,删除该行并npm install再次工作。
将NPM存储库URL更改为HTTP可以快速解决问题,但是我想使用HTTPS。
就我而言,我的雇主(ZScaler)的代理引起了问题(因为它充当MITM,导致了证书验证问题)
我忘了我找到了一个与此脚本和Git一起使用的脚本(用于通过HTTPS克隆GitHub存储库存在相同的问题),并将其分叉供我使用
基本上,它对git执行以下操作:
git config --global http.proxy http://gateway.zscaler.net:80/
git config --system http.proxy http://gateway.zscaler.net:80/
对于Node,它将添加proxy=http://gateway.zscaler.net:80/到c:\Users\$USERNAME\npm\.npmrc
那为我解决了这个问题。
有同样的错误。看起来它与 SSL 证书有关。如果您将 NPM 用于公共包(不需要 HTTPS 的安全性),您可以使用以下命令关闭严格的 SSL 密钥验证。
如果您只想一次性安装一些公开可用的软件包,这可能是最简单的修复方法。
npm config set strict-ssl=false
| 归档时间: | 
 | 
| 查看次数: | 60744 次 | 
| 最近记录: |