我正在尝试使用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.
Run Code Online (Sandbox Code Playgroud)
拉动现有存储库时的问题相同.
我已经尝试将上传的SSH密钥上传~/.ssh/github-ssh.pub到Github设置,但它没有任何帮助.
编辑:刚刚检查过,即使我尝试克隆一个不存在的存储库,它也会发生.
Mik*_*len 32
禁用证书验证(设置http.sslVerify为false)总是一个坏主意.
我认为这里的问题是,当您安装git时,您选择使用Windows安全通道库而不是OpenSSL库:
正如@ CurtJ.Sampson所指出的那样(感谢Curt!),您可以切换到使用OpenSSL库,这将解决您的问题.这可以使用以下命令完成:
git config --global http.sslBackend openssl
Run Code Online (Sandbox Code Playgroud)
或者,您可以重新安装git,在此过程中指定OpenSSL库.
不要忘记重新启用git SSL验证:
git config --global http.sslVerify true
Run Code Online (Sandbox Code Playgroud)
更新:如果您在自己的git服务器上使用自签名或公司证书,并且在尝试连接时遇到错误(例如证书链中的自签名证书或SSL证书问题:无法获得本地颁发者证书),然后解决方案是告诉git在哪里找到用于签署该站点证书的CA. 您可以使用以下配置命令执行此操作:
git config --global http.{your site's URL here}.sslcainfo "{path to your cert file}"
Run Code Online (Sandbox Code Playgroud)
例如,如果您有一个本地git服务器,https://my.gitserver.com/并且签署了该站点证书的CA在C:\Certs\MyCACert.crt,那么您需要输入:
git config --global http.https://my.gitserver.com/.sslcainfo "C:\Certs\MyCACert.crt"
Run Code Online (Sandbox Code Playgroud)
与将CA证书添加到git的捆绑ca-bundle.crt文件相比,这是一个更强大的解决方案,因为下次更新git时将覆盖该文件.
Clo*_*use 28
当您在所有流量上执行MITM的公司网络上时,通常会遇到此错误,然后阻止撤销检查.显然,理想情况是不阻止检查(或至少阻止网址白名单),可能需要解决此问题.
一个选项是,如迈克的答案的第一部分,改为使用OpenSSL绑定.虽然这有效,但它需要手动维护证书列表,这在极端情况下可能不实用(例如,每天发布的新根证书,尽管这不太可能).
另一个选项,类似于Mike的答案的第二部分,是禁用撤销检查.
git-for-windows的最新版本2.19及更高版本提供了一个http.schannelCheckRevoke设置:
用于在http.sslBackend设置为"schannel"时强制执行或禁用cURL中的证书吊销检查.
true如果未设置,则默认为.只有在Git始终出错并且消息是关于检查证书的撤销状态时才需要禁用此功能.如果cURL缺少在运行时设置相关SSL选项的支持,则忽略此选项.
...所以你可以在第一时间禁止检查撤销:
git config --global http.schannelCheckRevoke false
请注意,与完全禁用SSL不同,这并不比使用Mike对特定存储库的答案更不安全:如果捕获并配置空的撤销列表(通常情况),则您已经有效地禁用了吊销检查. 禁用撤销检查仅在私钥泄露(链中的某个点)的情况下成为风险,这是罕见且困难的.
另请注意,在公司MITM设置中,正在为您执行吊销检查:没有值得使用的代理会为无效或(已知)受损证书颁发证书.
我在 Windows 10 上使用 vagrant(安装版本:2.2.16)时遇到此错误,该错误是由卡巴斯基反病毒软件引起的,当我将网站 vagrantcloud.com 和 cloud-images.ubuntu.com 添加到可信地址中时得到解决防病毒软件允许扫描加密连接并允许其作为可信站点。有关防病毒设置更改的更多信息,请访问https://support.kaspersky.com/KIS/2019/en-US/157530.htm
仅供参考,已知防病毒软件会导致此类错误,您所需要做的就是识别进行下载的站点并将其添加到防病毒程序的可信地址中。就我而言,它是卡巴斯基反病毒软件。可能使用 --debug 运行命令来获取 adjat 站点将是一个好主意。