2013-03-23 65 views
3

我在stackoverflow上搜索了周圍,我還沒有發現任何完全回答這個問題,所以我想問它在這裏,並提供儘可能多的關於我的問題的細節。GIT HTTPS連接問題

我剛剛安裝了openSUSE 12.3,安裝了git,並嘗試使用https克隆到我的某個回購站中。以下命令可在Ubuntu,Mac和其他操作系統上正常運行,但由於某些原因,我在SUSE上遇到了問題。

當我運行:

git clone https://[email protected]/git/myrepo.git 

當「複製到‘myrepo’

我已經禁用sslverify,這是它是如何工作的其他機器它掛我不相信這是一個sslverify的問題,因爲當我沒有sslverify在其他機器上,我得到一個特定的錯誤信息,在這種情況下,我只是得到一個掛在'克隆到...'

我運行以下命令獲取更多信息:

GIT_CURL_VERBOSE=1 git clone https://[email protected]/git/myrepo.git 

從輸出爲:

Cloning into 'myrepo'... 
* Couldn't find host mysite.com in the .netrc file; using defaults 
* About to connect() to mysite.com port 443 (#0) 
* Trying x.x.x.x... 
* Connected to mysite.com (x.x.x.x) port 443 (#0) 
* Connected to mysite.com (x.x.x.x) port 443 (#0) 
* successfully set certificate verify locations: 
* CAfile: none 
    CApath: /etc/ssl/certs/ 
* Unknown SSL protocol error in connection to mysite.com:443 
* Closing connection #0 
error: Unknown SSL protocol error in connection to mysite.com:443 while accessing https://[email protected]/git/myrepo.git/info/refs?service=git-upload-pack 
fatal: HTTP request failed 

我明顯改變用戶名,IP地址和DNS名稱這一問題的緣故。

我聽說curl的舊版本有問題,但這個版本是較新的版本之一。 Ubuntu上的libcurl版本實際上比較老,所以我仍然不認爲這是一個錯誤,但不完全確定。我沒有權利將此從HTTPS更改爲SSH,因此不是替代方案。

在此先感謝。

+0

作爲後續,我能夠克隆到具有有效證書的倉庫。例如,我通過https克隆了一個github repo,它工作正常。我應該補充一點,我克隆進來的回購失敗了一個自簽名證書。禁用SSL驗證可以在其他機器上使用,但在SUSE上不起作用。 – saegeoff 2013-03-23 17:41:57

+0

我也在服務器上使用gitblit,如果有幫助。 – saegeoff 2013-03-23 17:45:12

回答

1

我認爲關鍵是SSL庫(版本),而不是特別是libcurl版本。它看起來像你可能會使用OpenSSL,因此比較工作版本和非工作版本在這方面...

+0

SUSE機器上的OpenSSL版本是1.0.1e 2013年2月11日。我檢查了ubuntu機器,它是1.0.1 2012年3月14日。所以SUSE版本確實更新。 – saegeoff 2013-03-24 21:45:56