当我试图从我们的git服务器拔出时,我收到了这个错误:
致命:无法访问' xxx':OpenSSL SSL_connect:SSL_ERROR_SYSCALL 与xxx有关
如果发生这种情况之前我只能通过恢复系统来解决问题,但这次我的系统恢复点由于某种原因被删除了,我也做不到。
所以发生这种情况是因为我的系统设置中的某些内容与SSL相关,我不知道原因。
我尝试过安装git来使用windows cert。存储而不是OpenSSL,我收到了这个错误:
致命:无法访问' xxx':schannel:未能获得握手, SSL / TLS连接失败
同样的问题,不同的错误信息。客户端问候后服务器没有发回hello消息。我认为这可能会发生,因为服务器不支持我在客户端问候消息中发送服务器的密码套件。所以我尝试了configuring a group policy并将服务器首先使用的密码套件按顺序放置。但它没有任何区别。
我可以通过浏览器连接git服务器的网站。所以我的问题是,我该怎么做才能解决这个问题?
答案 0 :(得分:1)
您应该使用Git for Windows release 2.14.2 (June 21th, 2018)再试一次,以进行测试,当ssl后退http.sslCAinfo
schannel`时,该代码将添加代码以强制忽略is set to
(这样Windows证书存储为不忽略)。
这实际上仅与使用cURL v7.60.0(或更高版本)一起运行时相关。
请参见commit c5ad43e:
http
:使用安全通道时,默认情况下忽略sslCAInfo
从cURL v7.60.0开始,安全通道后端可以使用通过
http.sslCAInfo
提供的证书捆绑包,但是它将覆盖Windows证书存储。由于默认情况下不希望这样做,因此让我们告诉Git在通过schannel
配置http.sslBackend
后端时默认不要求cURL使用该捆绑包,除非useSSLCAInfo
覆盖此行为。
答案 1 :(得分:1)
在我的情况下,我从
更改了.gitconfig[http] sslbackend = schannel
到
[http] sslbackend = openssl
答案 2 :(得分:1)
当我尝试将http代理用于本地网络上的git repo时遇到unable to access 'https://hostname.local/reponame.git/': schannel: failed to receive handshake, SSL/TLS connection failed
错误(无法通过该特定代理访问)。我将http.proxy设置重置为空字符串:
git config --global http.proxy ""
(请注意,在我的情况下,这是一个全局级别的设置,YMMV。)
答案 3 :(得分:0)
一个"弱"解决方案是设置GIT_SSL_NO_VERIFY
:
export GIT_SSL_NO_VERIFY=true
或者在Windows上,如果使用命令行版本的Git,请在系统或命令行中设置环境变量:
set GIT_SSL_NO_VERIFY=true
它只会做它所说的......
答案 4 :(得分:0)
我遇到了同样的问题(Windows 10),重新启动后解决了该问题。
答案 5 :(得分:0)
我的情况是我在使用本地代理(在我的情况下为px)访问www(例如github.com)时遇到了这个问题,但同时对我们公司的github-site使用了相同的设置(git。 example.org)。我以为这个站点也会在www中,但是事实证明它实际上是通过NAT-IP(内部)进行的。因此,我不得不从本地代理中排除内部IP地址。然后它起作用了。
答案 6 :(得分:-1)
在我的情况下,没有正确配置NO_PROXY变量。
答案 7 :(得分:-1)
在我的情况下 - jenkins工作中的同样问题 - 我提供了错误的用户凭据。
答案 8 :(得分:-2)
git push orgin destination_branch