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

t2a7ltrp  于 2023-10-19  发布在  Git
关注(0)|答案(8)|浏览(320)

在Visual Studio中,我试图从GitLab上的存储库中提取一些更改,但它给了我一个错误:
Git失败,出现致命错误。
无法访问https://gitlab...git/:SSL证书问题:证书已过期 *
如何生成新证书并将其添加到VS?我没有使用GitLab的经验。

ymdaylpp

ymdaylpp1#

有一个快速修复方法可以在命令行中运行:

git config --global http.sslVerify "false"

the following article中找到解决方案。
更新日期:
虽然最初的解决方案提供了一个快速的解决方案,但由于评论中提出的问题,必须强调安全影响和负责任的使用。
警告:以下快速修复程序可能会通过禁用SSL验证使您面临安全风险:

git config --global http.sslVerify "false"

使用此解决方案时要格外小心,并严格用于故障排除目的。

更安全的选择:

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

  • 适用于Windows*
download and install from the official website
  • 对于macOS(使用Homebrew):*
brew upgrade git
  • 对于基于Debian的Linux发行版:*
sudo apt-get update && sudo apt-get upgrade git

2.验证证书:

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

负责任地使用快速修复:

如果你发现自己不得不使用快速修复:

  • 仅本地环境:

确保仅在安全和受控的环境中应用。从来没有在生产环境中。

  • 时间限制:

通过运行以下命令尽快重新启用SSL验证

git config --global http.sslVerify "true"

附加说明:

  • 质量与安全:

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

  • 吸引Maven:

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

结论:

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

5uzkadbs

5uzkadbs2#

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/

解决方案:

更新Git for Windows到最新版本:

  • 打开Git CMD
  • 在命令行中,键入:
  • git update-git-for-windows*

或者,从以下位置安装最新版本的Git for Windows:https://git-scm.com/download/win
这个方法对我认识的几个人都有效。但是,如果您仍然遇到问题,请参阅:Git for windows: SSL certificate problem: certificate has expired
另外,这里有一个关于这个主题的好帖子:
https://github.com/git-for-windows/git/issues/3450

z4bn682m

z4bn682m3#

Visual Studio应该使用Git for Windows
如果您可以导出私有GitLab服务器的证书链,则可以将其添加到git文件夹中的C:\path\to\Git\\usr\ssl\certs文件中。
9月更新2021:Let's Encrypt交叉签名的DST Root CA X3几天前过期:参见here for more
2022年3月:正如Mohammed S. Al SahafTwitter上指出的那样,top upvoted answergit config --global http.sslVerify "false")很少是一个好的选择。
Git(技术上的OpenSSL)是混乱的,因为Let's Encrypt旧根过期(请参阅:来自**Scott Helme**的“Let's Encrypt's Root Certificate is expiring!“,创建于@securityheaders/@ softuri,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“。
对于GitLab的私有示例integrated with Let's encrypt,Let's Encrypt证书的过期可能很重要。
在任何情况下,都不要删除http.sslVerify
将正确的证书添加到您的信任存储中(在仔细检查其有效性/来源后)。

aiqt4smr

aiqt4smr4#

在客户端更新git版本后,它工作正常。
步骤1:检查git的版本

> git version

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

> git update
    
    > git version
drnojrws

drnojrws5#

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

ffscu2ro

ffscu2ro6#

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

git config http.sslVerify false
qpgpyjmq

qpgpyjmq7#

当我试图从gitlab查看最新更新时,我遇到了这个问题,错误消息:SSL证书问题:证书链中的自签名证书。这意味着你的gitlb证书已经过期,你需要把最新的证书放在当前证书的末尾。
1.转到https://gitlab.......通过Chrome
1.查看url前的锁定图标,单击此图标
1.查看证书,并检查它的有效性(你需要这个)
1.单击详细信息,然后复制到文件
1.点击下一步并选择“Base-64 encoded”(Base-64编码)
1.保存您的证书文件到某个文件(例如file_1.cert)
1.使用Notpad++打开,然后复制所有内容,将其粘贴到Gitlab使用的当前证书文件的末尾
1.再看看Gitlab,现在应该没问题了

xam8gpfp

xam8gpfp8#

不要使用git config --global http.sslVerify "false"
@VonC虽然从技术上讲,ssh与ssl证书无关,但使用ssh克隆存储库完全绕过了http协议,因此也解决了这个问题。- 詹姆斯·赖特2021年10月4日17:49
谢谢,这对我有用。
我最初通过https://gitlab.com/repo.git克隆了我的仓库,最终导致了错误:fatal:unable to access 'https://gitlab.com/repo.git/':SSL证书问题:证书已过期
要修复这个问题,只需使用SSH再次克隆项目。
$ git clone [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection) :caring/repo.git
避免使用
$ git clone https://gitlab.com/repo.git

相关问题