2017-06-16 13 views
2

何らかの理由でごく最近、gitをgithubにプッシュしたり、ノードモジュールをインストールするためにnpmを使用することができませんでした。 (私は、Windows 10を使用しています)GitとNPMがプロキシを使用するために失敗しました

私は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 [email protected] No description 
npm WARN package.json [email protected] 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をインストールしようとすると、npmを更新するためにnpmを更新することができないので、同じエラーが発生します。

SSLの仕組みがわかりません。私が知る限り、私はSSL証明書を持っていないので、私はそれが何を探しているのか分かりません。私も数週間前にgitとnpmを使用していたときに、なぜこれが単なる問題であるのか分かりません。私が変更さかわからない...私はこのサイトで見つけたすべてのソリューションは、どちらか

  1. 私の証明書がどこにあるのgitを知らせる安全
  2. を鳴らないSSLを、チェックを無効にする、と私ですその方法を知らない

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はプロキシですか?

+1

あなたが言及したように、プロキシサーバーは、SSL経由のトラフィックを傍受し、マシンがgithub.comとnpmjs.comに対して無効と見なす証明書で送信する可能性があります。 CovenantEyesは自分のウェブサイトに基づいてこの機能を持っているようですが、私は個人的にそれに慣れていません –

答えて

5

私はCovenant Eyesを知らないが、彼らのウェブサイト上のすばやいスキムから見ると、私はそう言うだろう、彼らはプロキシ技術を使ってあなたのウェブトラフィックを傍受し、レートする/ブロックする。

HTTPSを使用する場合、サーバーとの通信はクライアントとサーバーの間で完全に暗号化されるため、プロキシはサーバーの個人情報を持たないため傍受することはできません。それで、たいていの場合、man-in-the-middle攻撃を行うことができます。つまり、サーバーからHTTPSページを要求し、それをブラウザに提示する前に独自の証明書で暗号化します(この星座のGitはブラウザです。 HTTP/HTTPS URLを要求し、それらを消費します)。

CovenantEyesがトラフィックを暗号化するために使用するこの証明書は公式のGitHub証明書ではないため、Gitは証明書を確認できないと不平を言います。あなたのブラウザは同じことをし、黙って(証明書を受け入れるように)指示するまで安全でないことを叫ぶ。

この作業を行うには、いくつかの方法があります。 g。1:

  • は、HTTPS URLを使用しないでください、しかし、これが可能であればGITまたはSSHのURL、それらと同じように、あなたは何のインターセプトCovenantEyesは
  • はCovenantEyesでインターセプトメカニズムの例外としてgithub.comを宣言し乱さなかった
  • CovenantEyesがものを暗号化し、信頼された証明書のリストに追加するのに使用している証明書をインポートし
  • 私が思う

証明書の検証をオフにします私は最も簡単なアプローチであることもある最初の方法を好むだろう。

+0

この投稿はhttps://helpforum.covenanteyes.com/covenanteyes/topics/ssl-connections-are-broken-on-windowsですか? -10-covenant-eyes-7-2-0?topic-reply-list%5Bsettings%5D%5Bfilter_by%5D = all&topic-reply-list%5Bsettings%5D%5Breply_id%5D = 18592011#reply_18592011オプション#3を参照していますか?オプション1で何を意味するのか分かりません.CovenantEyesは信頼できる証明書リストに証明書を追加するので、私は何が欠けているのか分かりません。 – robev

+0

これはいつも問題だったはずですが、私はCovenantEyesを何年もインストールしていましたが、今までgitとnpmを使っていました。最新バージョンのリリースノートでは、「外部CA証明書のサポートを追加しました。」 – robev

+0

はい、それはポイント3についてです。ポイント1については、https://help.github.com/articles/which-remote-url-should-iを参照してください。 -use/ – Vampire

関連する問題