【问题标题】:git SSL certificate- Invalid certificate chain while accessinggit SSL证书-访问时证书链无效
【发布时间】:2014-06-13 10:09:25
【问题描述】:

我对 github 和 git 还很陌生,但我确实在我的 Mac 上设置了 git(使用 Mavericks)并在 github 上添加了一个 repo。我正在使用 MAMP 并在 Drupal 网站上工作,当我尝试使用 git push origin master 第一次推送到存储库时出现错误:

error: SSL certificate problem: Invalid certificate chain while accessing
    https://githib.com/...git/info/refs?service=git-receive-pack
fatal: HTTP request failed

我环顾四周试图弄明白这个错误,但没有任何运气。非常感谢任何帮助。

【问题讨论】:

  • 如错误消息所述,这是某种 SSL/HTTPS 错误,链中的一个 SSL 证书无效。 SSL certificate rejected trying to access GitHub over HTTPS behind firewall 和 SSL certificate issue when trying to clone Git repository within Cygwin 的可能重复项。解决它的一种方法是使用 SSH URI 作为远程别名而不是 HTTPS。无论您做什么,请勿禁用 SSL 验证,除非您绝对确定它在您的情况下是安全的。
  • 这是否与我的钥匙串访问显​​示有关:“com.apple.ubiquity.ssl-cert.78...自签名根证书已过期 Dec.12.2013 此根证书不受信任“?这在我的钥匙串列表中出现了两次。我没有任何处理这种 SSL 的经验。我对 SSL 的唯一经验就是让它们用于电子商务网站。
  • 自签名证书听起来可能是您的问题。你知道为什么你的钥匙串里有它吗?无论如何,如果您只使用git:// SSH 协议 URL 代替您的 GitHub 存储库,则可以完全避免整个 SSL 问题,如果这是一个选项的话。
  • 我已经设置了 SSH 密钥,但是在 https 上将 repo 更改为 SSH 时遇到了麻烦。从我的 .sh 目录我添加: git remote set-url origin git://github.com/my-user-name/repo-name.git 我得到的是:致命:不是 git 存储库(或任何的父目录):.git 我可以只创建另一个(SSH)回购还是有办法改变它?
  • 如果需要,您可以使用git:// URL 克隆另一个 repo,但您收到的错误消息字面意思是说您正在尝试从不是git 回购。 .sh 不应该是一个 git repo,是吗?

标签: git github


【解决方案1】:

如果你使用自生成的 ssl 密钥,你可以试试这个。

git config --global http.sslVerify false

参考 https://confluence.atlassian.com/display/FISHKB/Unable+to+clone+Git+repository+due+to+self+signed+certificate

【讨论】:

  • 帮我修好了
  • 您不需要禁用 sslVerify。在 mac 中,您可以使用 safari 更新您的钥匙串访问以打开您的 git 服务器,然后检查始终信任。然后,将 ~/.gitconfig 更新为您自己生成的 ssl 证书。
【解决方案2】:

我最近(2014 年 7 月)遇到了类似的问题,并在 OS X (10.9.4) 上发现“DigiCert High Assurance EV Root CA”证书已过期(尽管我还有另一个未过期的证书)。

  1. 打开Keychain Access
  2. 在Certificates 中搜索“DigiCert”
  3. View 菜单 > Show Expired Certificates

我找到了两个名为“DigiCert High Assurance EV Root CA”的证书,一个在 2031 年 11 月到期,一个在 2014 年 7 月(几天前)到期。删除过期的证书为我解决了这个问题。

希望这会有所帮助。

【讨论】:

【解决方案3】:

检查你的时钟!就我而言,我使用的是 HTTPS,但我的时钟错误,我禁用了 SSL,但最终我意识到问题出在时钟上。更新时钟并重新启用 SSL 就成功了:

git config --global http.sslVerify true

【讨论】:

    【解决方案4】:

    想知道这种情况何时发生变化或为什么对其他人有用,但对我来说,解决方案基本上是使用https 而不是http:

    git config --global https.sslVerify false
    

    【讨论】:

    • 奇怪的是这对我有用,让我重新开始制作。然而,并不令人满意:我所知道的原点没有任何变化,那么为什么要将 sslVerify 设置为 false?
    【解决方案5】:

    在能够毫无问题地克隆大量存储库后,我得到了这个错误。问题是我的 repo url 域(github.om 而不是 github.com)中有错字。我确信这个错误在某些方面是正确的,但对这个特定问题不是最有帮助的。

    【讨论】:

      【解决方案6】:

      我们的其中一台使用非自签名证书的 Git 服务器出现此错误。我们已经能够识别并修复它:它是由未在 Git 服务器前面的反向代理中注册的中间证书(GlobalSign G2 证书)引起的(在反向代理之前我们一直使用 HTTPS)。

      这个bug report 帮助我们确定了原因。

      我们使用 nginx 作为反向代理。官方documentation给出见解。

      这个tutorial 解释了如何解决它。

      【讨论】:

        【解决方案7】:

        在尝试提取代码时,我在 Visual Studio 2019 中看到了此错误。 要解决此问题, 在全局设置中启用安全通道(转到工具 --> 选项 --> 源代码管理 --> Git 全局设置 --> 从加密网络提供商下拉列表中选择“安全通道”。

        注意:如果您在源代码管理中没有看到 git 全局设置选项

        1. 安装 Visual Studio 的所有更新(检查 Visual Studio 就绪栏右下角的铃铛图标)
        2. 为 Visual Studio 包安装 Github 扩展(转到扩展 --> 管理扩展 --> 搜索包。注意,关闭 Visual Studio 编辑器时将安装包)

        【讨论】:

          猜你喜欢
          • 2018-11-16
          • 2013-09-28
          • 2019-12-11
          • 1970-01-01
          • 1970-01-01
          • 2021-02-20
          • 2013-10-25
          • 2020-02-19
          • 2020-06-26
          相关资源
          最近更新 更多