2017-08-07 155 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訪問的相同公司代理。) –