更新到macOS后,git无法在钥匙串中找到证书Sierra
升级到macOS 10.12 Sierra后,我无法与加密的SSL git服务器同步。通过Safari访问服务器时,证书仍然正常工作。更新到macOS后,git无法在钥匙串中找到证书Sierra
我在尝试推到服务器时,这条消息:
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
有任何人碰到了这个问题这么远?
它看起来像混帐凭据osxkeychain助手应用程序在MacOS塞拉利昂打破,也不会读出与安全查找器身份返回更多的用户证书
我发现的唯一的解决方法是
- 出口从钥匙串中的证书和密钥对my_certificate.p12
-
编辑的.git/config中受影响的帐户使用
[http] sslCert = /Users/foo/certificates/my_certificate.p12 sslcertpasswordprotected = true
注意:您需要在P12密码并且为P12输入密码每次你做一个git命令的时间。
P.S:雷达:// 28461462
如果你想使用CRT和密钥文件
[http]
sslVerify = false
sslCert = my.crt
sslKey = my.key
您需要安装卷曲和git与OpenSSL的支持
brew install openssl
brew install curl --with-openssl
brew install git --with-brewed-openssl --with-brewed-curl
预期这是为我工作
Thx!这对Sierra来说是有效的,尽管现在完全不使用mac OS安全机制,并明确地说明了在mac OS下openssl不受支持。 –
首先你必须卸载 – Tintenklecks
简单的ssh-ADD帮我这个;)
ssh-add ~/.ssh/id_rsa
首先,你必须在安装后卸载
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 .......
这是什么对我有用
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
OSE debuggin。
证书位于钥匙串中并被标记为可信。此外还有CA证书。
同样的问题与“无法找到证书。”更改证书名称不包含其他字符使用非拉丁字符的字符串后,错误信息已经解决了我。即将“my_cert.p12”重命名为“mysert.p12”确实有助于摆脱此错误。
太棒了!该解决方法仍然有效,但是有人知道这个问题有任何进展吗? – jonasberglund
你为什么认为这与git-credential-osxkeychain有关?看不到任何代码将在那里处理证书https://github.com/git/git/blob/master/contrib/credential/osxkeychain/git-credential-osxkeychain.c – Broatian
它看起来像修复正在进行中CURL回购: –