我最近在我的 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/