更新到macOS Sierra后,git无法在钥匙串中找到证书

时间:2016-09-22 07:09:12

标签: git macos ssl macos-sierra

升级到macOS 10.12后,我无法与加密的SSL git服务器同步。通过Safari访问服务器时,证书仍可正常工作。

尝试推送到服务器时收到此消息:

fatal: unable to access 'https://....': SSL: Can't find the certificate "...." and its private key in the Keychain.

证书在钥匙串中,并且名称是正确的(它在更新之前有效),但不知何故我无法访问它。

我的〜/ .gitconfig文件仍由以下内容组成:

[http "https://...."]
    sslCert = ....
[credential]
    helper = osxkeychain

到目前为止还有其他人遇到过这个问题吗?

6 个答案:

答案 0 :(得分:6)

看起来 git-credential-osxkeychain 帮助应用程序在macOS sierra上被破坏,并且不再检索通过安全性查找身份返回的用户证书

我找到的唯一解决方法是

  • 将证书和密钥从钥匙串导出到my_certificate.p12
  • 编辑要使用的受影响帐户的.git / config

    [http]
      sslCert = /Users/foo/certificates/my_certificate.p12
      sslcertpasswordprotected = true
    

注意:您需要在P12上输入密码,并且每次执行git命令时都必须输入p12的密码。

P.S:RADAR:// 28461462

答案 1 :(得分:4)

如果要使用crt和密钥文件

[http]
    sslVerify = false
    sslCert = my.crt
    sslKey = my.key

你需要使用openssl支持安装curl和git

brew install openssl
brew install curl --with-openssl
brew install git --with-brewed-openssl --with-brewed-curl

这对我来说符合预期

答案 2 :(得分:0)

简单的ssh-add帮助了我;)

ssh-add ~/.ssh/id_rsa

答案 3 :(得分:0)

首先你必须卸载

brew uninstall openssl
brew uninstall curl
brew uninstall git 

安装为@trollr后提到

brew install openssl
brew install curl --with-openssl
brew install git --with-brewed-openssl --with-brewed-curl

,您还必须确保使用正确的git版本(有MAAAAAANY可用,请参阅

find / -name git

Homebrew告诉你它将新酿造的git版本放在哪里,例如

/usr/local/Cellar/git/2.10.2/bin/git

检查您的版本 哪个git

或只是调用绝对路径以确保使用正确的版本,例如

/usr/local/Cellar/git/2.10.2/bin/git clone .......

答案 4 :(得分:0)

这对我有用

git -c http.sslCert=/Users/user/Documents/gittest/cert.p12 -c http.sslcertpasswordprotected=true clone https://gitlab.domain.com/user/repository.git

您可以通过添加

添加更详细的调试工具
GIT_CURL_VERBOSE=1 GIT_TRACE=2 GIT_TRACE_PACKET=2 

在命令面前。

证书位于钥匙串中并标记为受信任。还有CA证书。

答案 5 :(得分:0)

同样的问题"无法找到证书。"将证书名称更改为不包含除拉丁字母之外的其他字符的字符串后,我已经解决了错误消息。即重命名" my_cert.p12" to" mysert.p12"真的有助于摆脱这个错误。