作者:我爱你可你不懂_516 | 来源:互联网 | 2023-02-01 08:02
由于某种原因,最近我无法使用git推送到github,或者使用npm来安装节点模块.(我使用的是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!
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没问题.我不知道发生了什么变化......我在这个网站上发现的所有解决方案都是
禁用检查SSL,这听起来不安全
告诉git我的证书在哪里,我不知道该怎么做
对于npm我在这里尝试了一切:Socket.io无法验证第一个证书,但它没有帮助.最后一步导致:
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是代理吗?
1> Vampire..:
我不知道契约之眼,但从我从他们的网站上快速浏览看到的,我会说是的,他们正在使用代理技术拦截您的网络流量并过滤/评级/阻止它.
使用HTTPS时,与服务器的通信在客户端和服务器之间完全加密,因此代理无法拦截,因为它没有服务器的私有信息.因此它最多可以执行一个有用的中间人攻击,这意味着它会从服务器请求HTTPS页面,然后使用自己的证书对其进行加密,然后再将其呈现给您的浏览器(此星座中的Git是一个浏览器,如它请求HTTP/HTTPS URL并使用它们).
CovenantEyes用于加密流量的证书当然不是官方的GitHub证书,因此Git抱怨它无法验证证书.您的浏览器也会这样做,并对您大喊大叫这是不安全的,直到您告诉它关闭(接受证书).
为了使这项工作,你有几种方法,例如:
不要使用HTTPS URL,而是使用GIT或SSH URL,就像那些没有拦截CovenantEyes的人一样令人不安
github.com
如果可能的话,宣布CovenantEyes中的拦截机制是例外
导入CovenantEyes用于加密内容的证书,并将其添加到可信证书列表中
关闭证书验证
我想我更喜欢第一种方式,这也是最简单的方法.