【问题标题】:Why can't git read my certificate file in Yosemite?为什么 git 不能在优胜美地读取我的证书文件?
【发布时间】:2014-11-28 16:22:15
【问题描述】:

我最近在我的 MacBook Pro 上执行了 Yosemite 的全新安装。在执行此操作之前,我备份了所有文件,以便我可以重新启动并运行。但是,我无法让 git 正常使用我的证书,我不知道为什么。

我已经使用 HomeBrew 安装了 git。 然后,我从备份中复制了原始 .gitconfig 文件并将其放在我的主目录中。这是问题开始的时候。我的文件包含以下认证行:

[http]
   sslCAInfo = cacert.cert
   sslCert = russellseymour.pem
   sslKey = russellseymour.key
   sslVerify = false

现在,“brew update”之类的操作失败并出现以下错误:

fatal: unable to access 'https://github.com/Homebrew/homebrew/': SSL: Can't load the     certificate "russellseymour.pem" and its private key: OSStatus -25299
Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master

现在 git 不可用了。我需要设置证书,以便访问我的私人仓库。

有谁知道是否有一个简单的解决方法?是优胜美地的变化吗?

提前致谢,

罗素

【问题讨论】:

    标签: git homebrew osx-yosemite


    【解决方案1】:

    下午好,

    在玩了一些之后,我终于弄清楚了问题所在。

    我还没有真正理解 Git 现在正在使用 KeyChain。所以当我使用上面显示的 git 配置运行 git 时,它会将我的证书导入到钥匙串中。

    但是它没有导入我分配的 CA 证书。我还发现(经过大量搜索)错误代码OSStatus -25299 表示证书重复!

    所以要修复所有问题,以便 git 仍然可以使用自制软件和我自己的存储库(以及其他 git 存储库),我必须执行以下操作:

    • 从 .gitconfig 文件中删除所有 ssl* 配置
    • 将我的证书和 CA 导入钥匙串。这些必须是可信的,这样钥匙串才能使用它们
    • 因为我不想关闭所有内容的验证,所以我第一次使用以下命令克隆我的 repo:

    git -c http.sslVerify=false clone https://my.repo/example

    然后我在该存储库上运行本地配置以确保证书未经过验证,例如

    cd example git config http.sslVerify=false

    我很高兴地说,现在一切正常。

    罗素

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-01
      • 2015-01-04
      • 1970-01-01
      • 1970-01-01
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多