gpt4 book ai didi

node.js - 由于使用代理,Git 和 NPM 失败

转载 作者:搜寻专家 更新时间:2023-10-31 23:37:06 26 4
gpt4 key购买 nike

由于某些原因,最近我无法使用 git 推送到 github,也无法使用 npm 安装 Node 模块。 (我正在使用 Windows 10)

我在 git 中遇到这个错误:

$ git push origin master fatal: unable to access
'https://github.com/$$$/$$$.git/': SSL certificate problem:
unable to get local issuer certificate

我在使用 npm 时遇到了这个错误:

npm install --save-dev webpack
npm WARN package.json 613@1.0.0 No description
npm WARN package.json 613@1.0.0 No README data
npm ERR! Windows_NT 10.0.14393
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "--save-dev" "webpack"
npm ERR! node v4.4.4
npm ERR! npm v2.15.1
npm ERR! code UNABLE_TO_VERIFY_LEAF_SIGNATURE

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

npm ERR! Please include the following file with any support request:
npm ERR! npm-debug.log

我把git更新到最新版本,同样的错误。我尝试执行 npm install -g npm 来更新 npm,得到同样的错误,所以我无法更新它。

我不明白 SSL 是如何工作的。据我所知,我没有任何 SSL 证书,所以我不知道它在寻找什么。我也不知道为什么这只是现在的问题,几周前我使用 git 和 npm 没问题。我不知道发生了什么变化......我在这个网站上找到的所有解决方案都是

  1. 禁用检查 SSL,这听起来不安全
  2. 告诉 git 我的证书在哪里,我不知道该怎么做

对于 npm,我在这里尝试了一切:Socket.io unable to verify the first certificate它没有帮助。最后一步导致:

Loading latest certificates from 
https://mxr.mozilla.org/nss/source/lib/ckfw/builtins/certdata.txt?raw=1
undefined
> { [Error: unable to verify the first certificate] code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' }
undefined

我简单地尝试了 require('ssl-root-cas').inject(); 但它并没有帮助我的错误消失。

我不知道它是否相关,但我正在使用 CovenantEyes。我看过的一些网站说代理可能是个问题,CovenantEyes 是代理吗?

最佳答案

我不了解 Covenant Eyes,但根据我快速浏览他们网站的情况,我会说是的,他们正在使用代理技术来拦截您的网络流量并过滤/评级/阻止它。

当使用 HTTPS 时,与服务器的通信在客户端和服务器之间是完全加密的,因此代理无法拦截,因为它没有服务器的私有(private)信息。所以它最多可以进行中间人攻击,这意味着它从服务器请求 HTTPS 页面,然后在将其呈现给您的浏览器之前用自己的证书对其进行加密(这个星座中的 Git 是一个浏览器,因为它请求 HTTP/HTTPS URL 并使用它们)。

CovenantEyes 用来加密流量的证书当然不是官方 GitHub 证书,因此 Git 提示它无法验证证书。您的浏览器会做同样的事情并向您大喊这是不安全的,直到您告诉它闭嘴(接受证书)。

要完成这项工作,您有多种方法,例如。 G。其中之一:

  • 不要使用 HTTPS URL,而要使用 GIT 或 SSH URL,因为那些您没有拦截 CovenantEyes 令人不安的
  • 如果可能的话,将 github.com 声明为 CovenantEyes 拦截机制的异常(exception)
  • 导入 CovenantEyes 用于加密内容的证书并将其添加到可信证书列表
  • 关闭证书验证

我想我更喜欢第一种方法,这也是最简单的方法。

关于node.js - 由于使用代理,Git 和 NPM 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44596998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com