繁体   English   中英

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

[英]Unable to access gitlab: SSL certificate has expired

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

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

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

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

git config --global http.sslVerify "false"

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

Visual Studio 中的 Git 错误:

下午> git拉
git:致命:无法访问'**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 CMD
  • 在命令行上,键入:
    git update-git-for-windows

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

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

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

Visual Studio 应该使用Git for Windows

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

2021 年 9 月更新:让我们加密交叉签名的 DST 根 CA X3 几天前过期:请参阅此处了解更多信息


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

Git(技术上是 OpenSSL)很困惑,因为 Let's Encrypt 旧根已过期(请参阅:“让我们加密的根证书即将过期! ”来自Scott Helme ,创立了@securityheaders/@reporturi,Pluralsight 作者)。

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

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

另请参见Tomáš Mráz ( t8m )中的“ Old Let's Encrypt Root Certificate Expiration and OpenSSL 1.0.2 ”。

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

在任何情况下,都不要删除http.sslVerify
将正确的证书添加到您的信任库(在仔细检查其有效性/来源之后)。

在客户端更新 git 版本后,它工作正常。

第 1 步:检查 git 的版本

    > git version
    

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

    > git update
    
    > git version

我遇到了这个问题,我的解决方案是更新日期和时间。

这对我很有帮助。 打开终端:

git config http.sslVerify false

我被这个问题困扰了很长一段时间,后来意识到我已经设置了 wifi 代理。 快速代理设置检查可能会有所帮助:)

不要使用git config --global http.sslVerify "false"

@VonC虽然从技术上讲ssh与ssl证书无关,但使用ssh克隆存储库完全绕过了http协议,因此也解决了这个问题。 ——詹姆斯·赖特 2021 年 10 月 4 日 17:49

谢谢,这对我有用。

我最初通过https://gitlab.com/repo.git克隆了我的存储库,最终导致错误:致命:无法访问 'https://gitlab.com/repo.git/':SSL 证书问题:证书有已到期

要修复,只需使用 SSH 再次克隆项目。

$ git clone git@gitlab.com:caring/repo.git

避免使用

$ git clone https://gitlab.com/repo.git

当我尝试从 gitlab 查看最新更新时遇到问题,错误消息:SSL 证书问题:证书链中的自签名证书。 这意味着您的 gitlb 证书已过期,您需要将最新的证书放入当前证书的末尾。

  1. 通过 Chrome 访问 https://gitlab.......
  2. 查看网址前的锁定图标,单击此图标
  3. 查看证书,并检查它是否有效(你需要这个)
  4. 单击详细信息,然后复制到文件
  5. 单击下一步并选择“Base-64 编码”
  6. 将您的证书文件保存到某个文件(例如 file_1.cert)
  7. 使用 Notpad++ 打开,然后全部复制,粘贴到 Gitlab 使用的当前证书文件的末尾
  8. 再次查看Gitlab,现在应该可以了

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM