为什么Schannel无法从服务器接收握手?

问题描述 投票:2回答:6

当我试图从我们的git服务器拉出来时,我收到此错误:

致命:无法访问'xxx':OpenSSL SSL_connect:与xxx连接的SSL_ERROR_SYSCALL

如果发生这种情况之前我只能通过恢复系统解决它,但这次我的系统恢复点由于某种原因被删除了,我也不能这样做。

所以这是因为我的系统设置中的某些内容与SSL有关,我不知道为什么。

我已经尝试安装git以使用Windows证书。存储而不是OpenSSL,我收到此错误:

致命:无法访问'xxx':schannel:无法接收握手,SSL / TLS连接失败

同样的问题,不同的错误信息。客户端问候后服务器没有发回hello消息。我认为这可能会发生,因为服务器不支持我在客户端问候消息中发送服务器的密码套件。所以我尝试了configuring a group policy并将服务器首先使用的密码套件按顺序放置。但它没有任何区别。

我可以通过浏览器连接git服务器的站点。所以我的问题是,我该怎么做才能解决这个问题?

windows git ssl openssl tls1.2
6个回答
1
投票

您应该再次尝试使用Git for Windows release 2.14.2 (June 21th, 2018)进行测试,qzxswpoi在ssl backenhttp.sslCAinfoschannel`中添加强制忽略is set to的代码(以便不忽略Windows证书存储区)。 这在运行cURL v7.60.0(或更高版本)时才真正有用。

commit c5ad43e

http:使用安全通道时,默认忽略sslCAInfo

从cURL v7.60.0开始,安全通道后端可以使用通过http.sslCAInfo提供的证书包,但这会覆盖Windows证书存储区。由于默认情况下这是不可取的,所以让我们告诉Git默认情况下,当schannel后端是通过http.sslBackend配置时,默认情况下不会使用该包,除非useSSLCAInfo覆盖此行为。


1
投票

就我而言,我改变了.gitconfig

[http] sslbackend = schannel

[http] sslbackend = openssl

0
投票

一个“弱”的解决方案是设置GIT_SSL_NO_VERIFY

export GIT_SSL_NO_VERIFY=true

或者在Windows上,如果使用命令行版本的Git,请在系统或命令行中设置环境变量:

set GIT_SSL_NO_VERIFY=true

它会简单地做它说的......


-1
投票

在我的情况下,没有正确配置NO_PROXY变量。


-1
投票

在我的情况下 - jenkins工作中的同样问题 - 我提供了错误的用户凭据。


-3
投票

I have solution in my errors case.You can use command :

git push origin destination branch

© www.soinside.com 2019 - 2024. All rights reserved.