升级到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
到目前为止还有其他人遇到过这个问题吗?
答案 0 :(得分:6)
看起来 git-credential-osxkeychain 帮助应用程序在macOS sierra上被破坏,并且不再检索通过安全性查找身份返回的用户证书
我找到的唯一解决方法是
编辑要使用的受影响帐户的.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"真的有助于摆脱这个错误。