无法访问 GitLab:SSL 证书已过期

Dim*_*zyr 22 ssl visual-studio gitlab

在 Visual Studio 中,我尝试从 GitLab 上的存储库中提取一些更改,但它给了我一个错误:

Git 因致命错误而失败。
无法访问https://gitlab...git/:SSL 证书问题:证书已过期*

如何生成新证书并将其添加到 VS 中?我没有任何使用 GitLab 的经验。

Xab*_*Ion 44

您可以在命令行中运行一个快速修复:

\n
git config --global http.sslVerify "false"\n
Run Code Online (Sandbox Code Playgroud)\n

在下面的文章中找到了解决方案。

\n

更新:

\n

虽然原始解决方案提供了快速解决方法,但由于评论中提出的问题,有必要强调安全隐患和负责任的使用。

\n

警告:以下快速修复可能会因禁用 SSL 验证而使您面临安全风险:

\n
git config --global http.sslVerify "false" \n
Run Code Online (Sandbox Code Playgroud)\n

请极其谨慎地使用此解决方案,并严格将其用于故障排除目的。

\n

更安全的选择:

\n
    \n
  1. 更新 Git:确保您使用的是最新版本的 Git,这可能改进了对 SSL 和证书问题的处理。
  2. \n
\n

对于 Windows

\n
download and install from the official website \n
Run Code Online (Sandbox Code Playgroud)\n

对于 macOS(使用 Homebrew):

\n
brew upgrade git\n
Run Code Online (Sandbox Code Playgroud)\n

对于基于 Debian 的 Linux 发行版:

\n
sudo apt-get update && sudo apt-get upgrade git \n
Run Code Online (Sandbox Code Playgroud)\n

2. 验证证书:

\n

确定证书过期的原因并与存储库管理员或 IT 部门联系以寻求解决方案,因为管理和续订证书通常是他们的责任。

\n

负责任地使用快速修复:

\n

如果您发现自己必须使用快速修复方法:

\n
    \n
  • 仅本地环境:
  • \n
\n

确保仅在安全且受控的环境中应用它。切勿在生产环境中。

\n
    \n
  • 有限的时间:
  • \n
\n

通过运行尽快重新启用 SSL 验证

\n
git config --global http.sslVerify "true"\n
Run Code Online (Sandbox Code Playgroud)\n

补充笔记:

\n
    \n
  • 质量与安全:
  • \n
\n

正如 Eric K 所评论的,拥有有效的 SSL 证书并不等于您提取的代码的安全性。始终确保代码质量和完整性。

\n
    \n
  • 聘请专家:
  • \n
\n

如果不确定,请咨询您的 IT 部门或网络安全专家,了解过期的证书和任何临时解决方法。

\n

结论:

\n

安全应该始终是最重要的。采用的解决方案不仅能解决眼前的问题,还能维护开发环境和代码的完整性和安全性。

\n

  • 此解决方案是不负责任的,因为它会禁用所有安全性并使您和您的软件的所有用户面临风险。 (23认同)
  • 不要使用这个 - 它会给您带来安全风险。请阅读其他答案并更新您的 Git。 (6认同)

del*_*711 18

Visual Studio 中的 Git 错误:

PM> git pull
git: fatal: 无法访问 '**path**/**myrepo**.git': SSL 证书问题: 证书已过期

我的案例的原因是:
2021 年 9 月 30 日,根证书过期。
Let's Encrypt - “IdentTrust DST Root CA X3”证书
https://scotthelme.co.uk/lets-encrypt-old-root-expiration/

解决方案:
将 Windows 版 Git 更新到最新版本:

  • 打开 Git 命令
  • 在命令行中输入:
    git update-git-for-windows

或者,从以下位置安装适用于 Windows 的最新版本的 Git: https: //git-scm.com/download/win

这个解决方案对我认识的几个人都有效。但是,如果您仍然遇到问题,另请参阅: Git for windows:SSL 证书问题:证书已过期

另外,这里有一个与该主题相关的好帖子:
https://github.com/git-for-windows/git/issues/3450


Von*_*onC 7

Visual Studio 应该使用适用于 Windows 的 Git

\n

如果您可以导出私有 GitLab 服务器的证书链,则可以将其添加到ca-bundle.crtgit 文件夹中的文件中,格式为C:\\path\\to\\Git\\\\usr\\ssl\\certs.

\n

2021 年 9 月更新:Let's Encrypt 交叉签名的 DST Root CA X3 已于几天前过期:请参阅此处了解更多信息

\n
\n

2022 年 3 月:正如Mohammed S. Al Sahaf在Twitter上指出的那样,得票最高的答案( git config --global http.sslVerify "false") 很少(如果有的话)是一个好的选择。

\n
\n

Git(技术上是 OpenSSL)感到困惑,因为 Let\'s Encrypt 旧根已过期(请参阅:“ Let\'s Encrypt\'s Root 证书即将过期! ”来自Scott Helme,@securityheaders/@reporturi 创始人,Pluralsight 作者)。

\n

这不是禁用验证的好借口!

\n
\n

在 Windows 上,只有 OpenSSL <= 1.0.2 或 Windows < XP SP3 的客户端才会信任 IdenTrust DST Root CA X3 证书。

\n

另请参阅Tom\xc3\xa1\xc5\xa1 Mr\xc3\xa1z的“旧 Let\xe2\x80\x99s 加密根证书过期和 OpenSSL 1.0.2( )t8m

\n

对于与Let\'s encrypt 集成的 GitLab 私有实例,Let\'s Encrypt 证书的过期情况可能很重要。

\n

无论如何,请勿删除http.sslVerify.
\n将正确的证书添加到您的信任存储中(仔细检查其有效性/来源后)。

\n

  • @DimaKozyr ssh-keygen 与 ssl 证书无关(https://community.letsencrypt.org/t/confusion-about-tls-based-protocols-and-certificates-and-ssh-keys-and-host-keys /34731)。您需要从浏览器导出证书链(https://help.duo.com/s/article/2222?language=en_US) (2认同)

小智 5

在客户端更新git版本后,一切正常。

第一步:检查git版本

    > git version
    
Run Code Online (Sandbox Code Playgroud)

第 2 步:更新客户端系统上的 git

    > git update
    
    > git version
Run Code Online (Sandbox Code Playgroud)