【问题标题】: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 firewallSSL 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
          相关资源
          最近更新 更多