git - 为什么 git 无法在 Yosemite 中读取我的证书文件?

标签 git homebrew osx-yosemite

我最近在我的 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 不可用了。我需要设置证书,以便访问我的私有(private)仓库。

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

提前致谢

罗素

最佳答案

下午好

经过一番摸索,我终于弄清楚了问题所在。

我当时并没有真正理解 Git 现在正在使用 KeyChain。因此,当我使用如上所示的 git 配置运行 git 时,它会将我的证书导入到钥匙串(keychain)中。

但是它没有导入我分配的 CA 证书。我还发现(经过多次搜索)错误代码 OSStatus -25299 意味着存在重复的证书!

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

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

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

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

cd 例子 git 配置 http.sslVerify=false

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

罗素

关于git - 为什么 git 无法在 Yosemite 中读取我的证书文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27192654/

相关文章:

git - 如何在 Heroku 上更改应用程序的 git url

xcode - 在 OS X 10.10 (Yosemite) 下编译 VLCKit

django - git 和 django 迁移 : ignore the migrations files

c++ - 在 OSX El Capitan 中使用 Homebrew 的 Boost::Log 链接错误

ruby - 在 mac 10.7 上启动 github gollum 时找不到命令

Homebrew - 重复 "linking"错误。这里的根本问题是什么?

c++ - CMAKE_OSX_DEPLOYMENT_TARGET 在 Yosemite 上自动设置为 '10.10'

json - Swift - 将图像从 URL 写入本地文件

Github 认证但不允许代码推送

linux - 尝试在 CentOS 7 上的 Apache 上安装 GitLab