Git拉/推-无法访问HTTPS,SSL例程似乎已关闭


105

我每天都使用Git(和GitHub),并且一切正常,突然之间,我无法再通过Git命令与远程GitHub存储库通信。当我尝试“拉动Git”时,出现以下错误:

致命:无法访问' https://github.com/snahrvar/eatibl.git/ ':错误:1407742E:SSL例程:SSL23_GET_SERVER_HELLO:tlsv1警报协议版本

因此,我在多个存储库中进行了测试,并且在计算机上遇到了相同的错误。我有其他人与这些相同的存储库进行交互,并且对他们来说效果很好。在出现此错误之前,我在项目上执行了“ npm install sharp”操作,但最终失败了,我怀疑这可能与某些SSL设置混淆了,但这是一个疯狂的猜测!

任何一般的想法或指导将不胜感激!

如果有帮助的话,这是我的环境:

  • Git版本:1.9.4.msysgit.2
  • Windows版本:Windows 8.1

这里同样的问题吗?
LYES-CHIOUKH

使用Git 1.9.5.msysgit.1同样在这里
马克西姆·海伦

我遇到了同样的问题
追踪cabrera

11
我相信此更改是造成错误的原因:github.com/blog/2507-weak-cryptographic-standards-removed
Dan H

我遇到了同样的问题,并安装了Github桌面,一切正常!
达米安

Answers:


69

根据@Frederic在评论中的建议,更新TortoiseGit和GCM并没有帮助我,但更新Git本身却有帮助。

https://git-scm.com/download/win

为了确保新版本的Git可以正确安装并且与先前的安装没有冲突(如果使用TortoiseGit,则可能会使用不同的文件夹,并且可能会将PATH变量弄乱了),请在安装更新的Git之前删除现有的Git安装。 。可能还需要以管理员权限安装。


我不确定最近版本的git发生了什么,今天开始抛出这些错误,但这对我来说就是答案。我重新安装(版本为2天),并且已备份并且没有ssl错误。谈论大海捞针。
JeffBaumgardt

3
最有趣的部分是github本身并没有提到这一点,即使它可能与他们最近的更新有关。谷歌快速搜索有关其他代码托管的类似问题归咎于OpenSSL。
feos

是的,只需要更新到最新版本即可!谢谢:D
Shayan Nahrvar '18

1
@gath您可能有2个不兼容的git安装,请尝试完全卸载现有的git,然后从头开始重新安装git。但是您的错误是另外一个stackoverflow.com/questions/3778042/…–
feos

5
对我来说,“在安装更新的Git之前删除现有的Git安装”是整个崩溃的关键。
理查德·奥克比

20

您可能会遇到与GitHub弃用弱SSL加密协议不兼容的情况:

弱加密标准删除通知

解决方案会有所不同,但是对于Windows,您可能需要将Git凭据管理器升级到1.14.0。

https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0


1
他们是否会继续支持Windows内置的Git凭据管理器:wincred。我得到了同样的错误与工具
马克斯鹿茸

这个答案有助于提供有关更改的上下文,但是@feos的解决方案是对我有用的解决方案(Windows 10,TortoiseGit)
Eric Farraro

14

如果您使用的是Android Studio或IntelliJ IDEA,则将 Git更新到最新版本并更改指向新版本的路径可以为我解决问题。

在此处输入图片说明


1
这对我也有用:安装最新版本的Git并将IntelliJ IDEA指向它。
user1825866

8

使用TortoiseGit,我为此做了所有其他修复/更新,但仍然没有成功。我发现了这一点:突然无法git push / pull / fetch

我的Windows版Git.exe路径的TortoiseGit设置指向C:\Program Files (x86)\Git\bin。我将其更改为C:\Program Files\Git\bin,现在又可以正常工作了。


3
我使用设置对话框中的Check now按钮来检查它,使用我拥有Generalx86路径git version 1.9.5.msysgit.1,更改为C:\Program Files\Git\bin我拥有后的路径,git version 2.16.2.windows.1并且一切正常。
apdevelop

8

这对我有用。

  1. 从此处安装最新版本的Git:https//git-scm.com/download/win
  2. 在TortoiseGit中,转到菜单设置常规Git.exe路径 -将其从32位路径更改为64位路径:C:\ Program Files(x86)\ Git \ bin→C:\ Program Files \ Git \ bin

好点子。如果有人(例如我)一直在使用旧的Windows 32位版本,请确保将其替换在PATH上。
AG

这节省了我的时间@dgundersen
Tejas Mehta,

8

在我的情况下,更新Git是不够的。经过几个小时的调试,这是我的解决方法:

C:\wamp64\www\maandlastenmanager> git config http.sslVersion
tslv1.0

C:\wamp64\www\maandlastenmanager> git config http.sslVersion tlsv1.2

C:\wamp64\www\maandlastenmanager> git config http.sslVersion
tslv1.2

这为我解决了问题,并且使用了完全不同的设置(Mac OS X)。curl仍然给我消息,这让我想知道是否存在适用于所有ssl应用程序的设置,而不仅是git...
chesterbr

这些行中的哪一条?
Dmitri Zaitsev

2

Visual Studio Code终端上从GitHub提取代码时,我遇到了同样的问题。我发现前面的答案中的建议很有用,并按照以下步骤共同找到了解决方案:

该存储库非常有用。

我希望这可以帮助别人。


2

TL; DR:git config --system http.sslbackend schannel并关闭github.com防病毒软件中的HTTPS检查


我在Windows 8 x64上使用Git命令行。另外,默认情况下,我的防病毒软件会检查HTTPS流量。与其他人一样,我几乎每天都使用GitHub。

  • 更新Git-没有帮助-因为我使用了OpenSSL(请参见下文)
  • 更新凭证管理员-没有帮助

然后我开始切换SSL后端:

git config --system http.sslbackend openssl ----------------vs------------------ git config --system http.sslbackend schannel 防病毒软件会检查SSL流量:

  1. OpenSSL,HTTPS开启检查: error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01
  2. OpenSSL,HTTPS检查OFF: SSL certificate problem: unable to get local issuer certificate
  3. SecureChannel,HTTPS会检查ON: schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.
  4. SecureChannel,HTTPS检查OFF:工作正常

PS:不用命令行,您只需选择“使用本机Windows SSL验证库”即可重新安装最新的Git。

PPS:情况(3)似乎是schannel库中的错误,因为我的防病毒软件使用的MITM证书已在我的计算机上列入白名单。


重新安装git时,我完全删除了其旧安装,对于新安装,我选择了OpenSSL,所以我猜想它是从头开始重新安装的。但是我没有防病毒软件。重新安装SSL后端对您来说有什么改变,还是没有呢?
feos

@feos是的,它仅在非OpenSSL模式下对我有效。另外,我必须关闭AV中的https检查。
Mike Makarov '18

我仍然不清楚,您是否重新安装了SSL?
feos

@feos不,我没有。我认为没有人可以在Windows上“重新安装SSL”。因此,不确定您的意思是什么。安装最新的git客户端时,您可以选择-OpenSSL后端或Windows集成的后端。我选择了OpenSSL。那没有用,我通过配置更改了后端。希望这可以澄清。
迈克·马卡罗夫'18

是的,谢谢。我认为您遇到的问题与OP完全不同。
feos

1

在macOS上,您可以通过安装最新版本。gitHomebrew


不幸的是,这在Mac OS X 10.7.5(Lion)上对我不起作用-遇到相同的错误。然后,我尝试Homebrew从头开始安装-似乎是catch22。 error: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version while accessing https://github.com/Homebrew/brew/info/refs?service=git-upload-pack fatal: HTTP request failed
Setaa

@Setaa,那么,可以尝试从“发布”页面手动安装它吗?他们似乎已经在解决该catch22 1.5.5
AS

1

对我来说,与Git 1.9.5.msysgit.1相同。我试图安装https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0,但没有更改。

实际上,安装后什么也没有发生。也许我做错了什么?(这可能对最初的问题没有帮助,但对其他人而言,是的!)


6
为了帮助社区,我刚刚更新了git(对于Windows)(使用git-scm.com/download/win),它解决了这个问题!
Frederic

2
在Windows 7 Pro / 64下,我使用git-scm.com/download/win链接升级了git。这会将git安装到c:\ program files \ git而不是c:\ program files(x86)\ git。我的版本从1.9.5.msysgit.1更改为2.16.2.windows.1,当我配置WebStorm指向较新的版本时,神秘的1407742E:SSL例程:SSL23_GET_SERVER_HELLO:tlsv1警报协议版本错误停止了。
CODE-READ

仅供参考,我的设置是:C:\Program Files\Git\etc> cat install-options.txt Editor Option: Notepad++ Path Option: Cmd Plink Path: C:\Program Files (x86)\PuTTY\plink.exe SSH Option: Plink CURL Option: OpenSSL CRLF Option: CRLFAlways Bash Terminal Option: MinTTY Performance Tweaks FSCache: Enabled Use Credential Manager: Enabled Enable Symlinks: Disabled
CODE-READ

您应该鼓励您升级答案。
爱德华·汤姆森

1

是的,我今天在请求请求时遇到了相同的问题,解决方案是仅通过下载最新(2.16.2)64位版本的Windows Git来更新Git。它于5天前发布于2018-02-20。


1

@andw的评论对我有用:

使用以下步骤将Git版本1.9.5更新为2.15.1:

在sourceTree中,转到菜单工具选项Git使用嵌入式Git


1

一个快速的解决方案是git config --global http.sslVerify true,但是不建议,因为它不能达到使用SSL的目的。

第二种更好的方法是使用ssh密钥而不是SSL URL。

生成SSH密钥的步骤

o在Git终端(Git Bash)中运行以下命令:ssh-keygen

运行命令后,将显示以下消息:

生成公共/私有RSA密钥对。

输入要保存密钥的文件(/h//.ssh/id_rsa):

提供密钥的存储路径,例如,输入要保存密钥的文件(/h//.ssh/id_rsa): C:\Users\Public\my-new-ssh-key

然后提供该密钥的密码短语(任何至少8个字符的密码)

•接下来,运行以下命令:eval“ $(ssh-agent –s)”

•运行以下命令:ssh-add C:/Users/Public/my-new-ssh-key注意:在新创建的SSH密钥的路径中使用正斜杠。

之后,添加文件my-new-ssh-key.pub的内容,并将其添加到添加公钥(Bitbucket,GitHub等)的文本区域中。


0

连接到远程存储库以获取,拉取,推送等时,我遇到了相同的错误:

fatal: unable to access 'https://github.com/repository.git/': error:1
407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

我只是重新安装了Git 64位而不是32位,这解决了该问题。

安装后,请验证环境变量中的Git路径。它应该是:

C:\Program Files\Git\bin\git.exe

0

这是IntelliJ和RubyMine的问题。GitHub必须禁用SSL(也许符合PCI?),以支持TLS。如果您在IntelliJ或RubyMine中打开“设置”并导航到“版本控制”>“ Git”,您会看到它正在使用安装在应用程序路径下的git.exe。您应该下载最新版本的Git,并在VCS设置中更改路径以指向该路径,例如,如果在Windows上安装它,则C:\ Program Files \ Git \ bin \ git.exe。在那之后就像魅力一样。


0

有时,这是由过时的msysgit引起的,该过时的msysgit使用了旧的ssl并且不再维护,您可以为Windows安装最新的git,然后将tortoise设置中的git.exe路径指向它,然后此问题就消失了。



0

Git版本升级帮了我大忙。我的版本是1.9.5,所以我升级到2.21.0在Windows上。升级也很容易。我们不需要卸载旧版本。下载最新的Git安装程序,然后继续使用默认选项继续按下,然后版本将更改为新版本,所有旧设置仍将像ssh密钥等一样工作。我们无需再次生成密钥并放入github或任何其他存储库。

之前我的https协议克隆不起作用并给出了错误

致命:无法访问' https://github.com/tensorflow/models/ ':错误:1407742E:SSL例程:SSL23_GET_SERVER_HELLO:tlsv1警报协议版本

下载新版本并运行相同的克隆命令后,它便可以正常工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.