我正在尝试使用 Github Desktop 和 git shell 从 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.

pull 现有存储库时出现同样的问题。

我已经尝试将在 ~/.ssh/github-ssh.pub 中找到的 SSH key 上传到 Github 设置,但它没有任何帮助。

编辑: 刚刚检查过,即使我尝试克隆一个不存在的存储库也会发生。

最佳答案

当您在对所有流量执行 MITM 然后阻止吊销检查的公司网络上时,通常也会遇到此错误。
显然,理想的情况是不阻止检查(或至少阻止 url 的白名单),但可能需要解决此问题。

一种选择是,如迈克回答的第一部分, using the OpenSSL bindings instead 。虽然这有效,但它需要手动维护证书列表,这在极端情况下可能不切实际(例如,每天发布新的根证书,尽管这不太可能)。

另一个选项,类似于 Mike 答案的第二部分,是禁用吊销检查。
git-for-windows 的最新版本 2.19 及更高版本提供 http.schannelCheckRevoke setting :



...因此您可以简单地首先禁用对吊销的检查:git config --global http.schannelCheckRevoke false
请注意,与完全禁用 SSL 不同,这在本质上并不比对特定存储库使用 Mike 的答案更安全:如果您捕获并配置一个空的吊销列表(通常情况下),您实际上已禁用吊销检查。 Disabling revocation checking only becomes a risk in the case of private-key compromise(在链中的某个点),这是罕见且困难的。

另请注意,在企业 MITM 设置中,正在为您执行吊销检查:没有值得使用的代理会为无效或(已知)受损证书颁发证书。

关于Git - 吊销功能无法检查证书的吊销,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45556189/

10-13 09:37