【问题标题】:"fatal: HttpRequestException encountered." Error with GitHub/Bitbucket Repositories due to dropping TLS-1.0 support“致命:遇到 HttpRequestException。”由于放弃 TLS-1.0 支持,GitHub/Bitbucket 存储库出错
【发布时间】:2018-08-10 13:07:04
【问题描述】:

问题

我最近在推送到 GitHub 存储库时遇到以下消息:

"fatal: HttpRequestException encountered. " 然后再次提示我输入用户名和密码。

从之前的搜索来看,Visual Studiovarious others 具有相同的根本问题。对于那些比我更懒惰的人,这里是针对不同应用程序/操作系统的各种解决方案的摘要以及相关讨论。希望人们觉得这很有帮助。

原因

不能真正将更新安全性称为问题,所以这就是原因。问题是 GitHub 已删除 TLS-1.0 支持,这导致客户端出现问题,包括 Microsoft Visual Studio 的内置 git 客户端、低于 1.14 的 Git 版本以及 GUI 客户端(包括 TortoiseGit)等。完整的发行说明可以在这里找到: https://githubengineering.com/crypto-removal-notice/

Bitbucket 将从 2018 年 12 月 1 日开始放弃 TLSv1.0 和 TLSv1.1。我预计会出现与以前类似的问题。

解决方案

编辑:将我的自我回答移至答案框。见下文。

【问题讨论】:

  • 您应该编辑它并将答案移动到一个实际的、单独的答案中。自我回答很好,但您已在问题框中发布了一个包含答案的问题。

标签: git github bitbucket tls1.2 tls1.0


【解决方案1】:

Git hub 已从其身份验证服务中删除 TLS-1.0。 https://githubengineering.com/crypto-removal-notice/

解决方案

Windows 客户端

使用适用于 Windows 的 Git 2.14.3(或更新版本)及更新版本包括适用于 Windows 的最新 Git 凭据管理器:https://gitforwindows.org/

您还可以将您的 Git Windows 凭据管理器显式更新到最新版本 1.14.0,以获得 TLS-1.2 支持:https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0

Visual Studio 客户端

建议将您的客户端更新到 VS 2017,或者,如果您无法升级,您可以设置两个计算机范围的注册表项,这些注册表项会影响客户端计算机上所有基于 .NET 的应用程序,您可以更改它们... https://developercommunity.visualstudio.com/content/problem/201457/unable-to-connect-to-github-due-to-tls-12-only-cha.html

JDK

TLS-1.2 在 JDK8 中是默认的,在 JDK7 中可用。 https://blogs.oracle.com/java-platform-group/diagnosing-tls,-ssl,-and-https

红帽原生 Git 客户端

RH 5 不支持 TLS-1.2,GitHubEngineering 建议更新到较新版本的操作系统。 RH 6.8 和 7.2 将支持 TLS-1.2。 https://www.linuxquestions.org/questions/blog/mensawater-183304/rhel5-wont-support-tlsv1-1-or-higher-36951/

【讨论】:

  • 这对我来说不是一个完整的解决方案。我使用 Git 2.15,它使用 TLS 1.2。我的服务器是 Bitbucket,所以这可能不适用于 Github,但是: git 操作成功但 still 打印“致命:遇到 HttpRequestException”,所以它们看起来像失败。详细输出显示:```
  • 嗨@TravisWilson,如果您现在还没有弄清楚... Bitbucket 公告页面上的任何内容有用吗?
  • 我在公告中没有看到任何对这里有帮助的东西。自从 git 操作 do 成功以来,我并没有太努力地修复它。我(很遗憾)习惯于忽略错误消息。
  • 您的存储库来源的路径是什么?是 http:// 而不是 https?当你想知道为什么 git 在你推/拉时会尝试使用 HTTP 而不是 https 时,只是一个奇怪的想法......不要回答第一个问题。
  • 嗨。我无法将我的 git 从版本 2.8.2 升级到最新版本。运行git --version 后我仍然得到了 2.8.2 版本。一直在寻找几个小时,但什么也没有。
【解决方案2】:

旧版本的 git 已停止支持 TLS。

在你的机器上升级 git 可以解决这个问题。

Download the latest git 并从此处为您的机器安装:https://git-scm.com/downloads

【讨论】:

    【解决方案3】:

    第 1 步 首先,您需要下载并安装最新版本的 Git Windows Credential Manager。

    这是 GitHub 上的链接。 https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/latest

    第 2 步 重启你的机器。

    第 3 步 在命令行输入git命令,会提示重新登录。

    第 4 步 如果您仍然遇到相同的致命错误,则需要通过从此处下载最新版本来更新 Git: https://git-scm.com/downloads

    第 5 步 在命令行中输入 git 命令,系统会提示您再次登录。现在问题应该解决了,您应该可以正常工作了。

    【讨论】:

    【解决方案4】:

    上述解决方案对我不起作用。 但我有一个解决方案, 当 git 在 git bash 上再次向我们询问用户名时,在 git bash 本身上输入您的 GITHUB 用户名和密码,您将重新开始工作。

    【讨论】:

    • 如果第二次成功了,那么这与提出的问题无关,即关于 TLS 1.0 的兼容性。
    • 这是 github 经常问的一件事……这不是这个问题的合理答案
    猜你喜欢
    • 1970-01-01
    • 2018-08-07
    • 2017-04-03
    • 2022-08-05
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    相关资源
    最近更新 更多