2017-08-07 176 views
10

我试图同时使用Github上桌面和git的外壳从GitHub克隆,但不断收到此错误:的Git - 吊销功能无法检查吊销证书

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. 

同样的问题时,拉动现有的存储库。

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

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

+0

要使用ssh密钥,您需要将URL从'https:// github.com/JohnDoe/MyProject.git'更改为'[email protected]:JohnDoe/MyProject.git'。 – phd

回答

2

似乎防火墙阻止了git访问撤销列表。要覆盖此我设置的配置:

git config --global http.sslVerify false 
+1

我认为你需要删除'='。尝试“git config --global http.sslVerify false”而不是 – RGF

+4

这是一个非常糟糕的主意;您从现在开始已经关闭了您在Git中所做的所有SSL验证。 –

+0

这对我有用 – Aguid

11

它总是一个坏主意,禁用证书验证(设置http.sslVerifyfalse)。

我觉得这里的问题是,当你安装混帐,您选择使用的Windows安全通道库而非OpenSSL的库:

Git installation options

正如指出的作者@ CurtJ.Sampson(谢谢,Curt!),你可以切换到使用OpenSSL库来代替,这将解决你的问题。这可以用下面的命令来完成:

git config --global http.sslBackend openssl 

或者,你可以重新安装混帐,在指定过程中的OpenSSL库

不要忘了对转混帐 SSL验证回来:

git config --global http.sslVerify true 

更新:如果您使用自签名或企业证书自己混帐服务器上,而尝试连接时出现错误(例如证书链中的自签名证书SSL证书问题:无法获得本地签发者证书),那么解决方法是告诉git在哪里可以找到用于签署该站点证书的CA。您可以通过以下配置命令做到这一点:

git config --global http.{your site's URL here}.sslcainfo "{path to your cert file}" 

例如,如果你有https://my.gitserver.com/和本地的Git服务器CA签署该网站的证书是在C:\Certs\MyCACert.crt,那么你就需要输入:

git config --global http.https://my.gitserver.com/.sslcainfo "C:\Certs\MyCACert.crt" 

相比,这是对你的加入CA证书混帐是一个更强大的解决方案捆绑ca-bundle.crt文件,因为该文件将被覆盖,当你下次更新git

+1

完美,为我解决了它! thx =) – walteronassis

+2

你不需要重新安装:你可以通过'git config --global http.sslBackend openssl'在你的机器上切换你的帐户来使用OpenSSL,或者把它设置为'schannel'来切换它。 'git config --list'会告诉你当前的设置;后面的那些覆盖了较早的那些。 –

+0

很遗憾的是,当我切换到OpenSSL时,最终出现了另一个错误:“证书链中的自签名证书”。 (这可能与代理配置有关,尽管我在这两种情况下都使用了通过HTTP访问的相同公司代理。) –