Git - 失効機能は証明書の失効を確認できませんでした 質問する

Git - 失効機能は証明書の失効を確認できませんでした 質問する

Github デスクトップと git シェルの両方を使用して Github からクローンを作成しようとしていますが、次のエラーが引き続き発生します。

Cloning into 'C:\Users\John Doe\workspace\MyProject'...
fatal: unable to access 'https://github.com/JohnDoe/MyProject.git/': 
schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - 
The revocation function was unable to check revocation for the certificate.

既存のリポジトリをプルする場合も同じ問題が発生します。

すでに Github 設定で見つかった SSH キーをアップロードしようとしました~/.ssh/github-ssh.pubが、何も役に立ちません。

編集:確認したところ、存在しないリポジトリをクローンしようとしても発生します。

ベストアンサー1

このエラーは、すべてのトラフィックに対して MITM を実行し、失効チェックをブロックする企業ネットワーク上でもよく発生します。もちろん、理想的な状況はチェックをブロックしないこと (または少なくとも URL のホワイトリスト) ですが、この問題を回避するためにブロックが必要になる場合があります。

一つの選択肢は、マイクの回答の最初の部分にあるように、代わりにOpenSSLバインディングを使用するこれは機能しますが、証明書リストを手動で管理する必要があり、極端な状況では実用的ではない可能性があります (たとえば、毎日新しいルート証明書が発行される場合などですが、これは起こりそうにありません)。

もう一つの選択肢は、マイクの回答の2番目の部分と同様、失効チェックを無効にすることです。git
-for-windowsの最新バージョン2.19以降では、http.schannelCheckRevoke設定:

http.sslBackend が "schannel" に設定されている場合に、cURL で証明書失効チェックを強制または無効にするために使用されます。true設定されていない場合はデフォルトで になります。Git が常にエラーを起こし、メッセージが証明書の失効ステータスの確認に関するものである場合にのみ、これを無効にする必要があります。cURL が実行時に関連 SSL オプションを設定するためのサポートを欠いている場合、このオプションは無視されます。

...つまり、まず失効のチェックを無効にするだけです。
git config --global http.schannelCheckRevoke false

SSL を完全に無効にする場合とは異なり、これは特定のリポジトリに対して Mike の回答を使用するよりも本質的に安全性が低いわけではないことに注意してください。空の失効リストをキャプチャして構成すると (通常の場合)、失効チェックが事実上無効になります。失効チェックを無効にすると、秘密鍵が侵害された場合にのみリスクが発生します。(チェーンのどこかの時点で)これは稀で困難です。

また、企業の MITM 設定では、失効チェックが実行されていることにも注意してください。無効な証明書や (既知の) 侵害された証明書に対しては、使用に値するプロキシは証明書を発行しません。

おすすめ記事