2016-09-22 80 views
7

升級到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 

有任何人碰到了這個問題這麼遠?

回答

4

它看起來像混帳憑據osxkeychain助手應用程序在MacOS塞拉利昂打破,也不會讀出與安全查找器身份返回更多的用戶證書

我發現的唯一的解決方法是

  • 出口從鑰匙串中的證書和密鑰對my_certificate.p12
  • 編輯的.git/config中受影響的帳戶使用

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

注意:您需要在P12密碼並且爲P12輸入密碼每次你做一個git命令的時間。

P.S:雷達:// 28461462

+0

太棒了!該解決方法仍然有效,但是有人知道這個問題有任何進展嗎? – jonasberglund

+0

你爲什麼認爲這與git-credential-osxkeychain有關?看不到任何代碼將在那裏處理證書https://github.com/git/git/blob/master/contrib/credential/osxkeychain/git-credential-osxkeychain.c – Broatian

+0

它看起來像修復正在進行中CURL回購: –

3

如果你想使用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 

預期這是爲我工作

+0

Thx!這對Sierra來說是有效的,儘管現在完全不使用mac OS安全機制,並明確地說明了在mac OS下openssl不受支持。 –

+0

首先你必須卸載 – Tintenklecks

0

簡單的ssh-ADD幫我這個;)

ssh-add ~/.ssh/id_rsa 
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 ....... 
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 

OSE debuggin。

證書位於鑰匙串中並被標記爲可信。此外還有CA證書。

0

同樣的問題與「無法找到證書。」更改證書名稱不包含其他字符使用非拉丁字符的字符串後,錯誤信息已經解決了我。即將「my_cert.p12」重命名爲「mysert.p12」確實有助於擺脫此錯誤。

相關問題