2009-11-06 67 views
2

我正在嘗試使用Hudson(使用SVNKit)訪問需要客戶端證書才能訪問的Subversion存儲庫。我可以通過Eclipse使用相同的客戶端證書訪問相同的存儲庫(也使用SVNKit)。爲什麼我用Java SSL證書獲得handshake_failure?

當哈德森嘗試檢查出庫,它失敗:

org.tmatesoft.svn.core.SVNException: svn: Received fatal alert: handshake_failure 

翰德的Tomcat下運行,所以我在Tomcat日誌(-Djavax.net.debug=ssl)打開SSL調試。

在握手我看到的末尾:

*** ServerHelloDone 
Executor #0 for master : executing eMASS integration #3, SEND SSLv3 ALERT: warning, description = no_certificate 

我不知道如果是這樣的問題與否的關鍵所在。

接下來是Cert Authority的列表。我確保服務器的證書頒發機構是在我的cacerts以及中間發行機構中導入的。我仍然遇到同樣的問題。

有什麼想法?

The log is on pastebin

+0

問題是Hudson有一個錯誤,即使在它提示之後,它也沒有讀取客戶端證書。它被固定在哈德森1.342。看到接受的答案。 – CoverosGene 2010-01-29 17:17:52

回答

2

Hudson的Subversion插件中存在一些涉及處理SSL證書及其密碼的錯誤。這是我報告的,他們已經修復的:http://issues.hudson-ci.org/browse/HUDSON-5230。所以現在,它應該妥善保存您上傳的證書。

升級到Hudson(Hudson 1.342或更高版本)以及Subversion插件的最新版本(1.10,可在https://hudson.dev.java.net/servlets/ProjectDocumentView?documentID=147307&showInfo=true處獲得)的最新版本。要安裝此插件,請下載subversion.hpi文件,然後在Hudson中進入管理Hudson - >管理插件 - >高級,然後上傳。然後你需要重新啓動Hudson。

+0

就是這樣,它現在適用於我。 與此同時,我已將我的證書添加到/var/lib/hudson/.subversion/servers文件。請參閱https://wiki.svnkit.com/SVNKit_specific_system_properties和http://svnbook.red-bean.com/en/1.5/svn.advanced.confarea.html#svn.advanced.confarea.opts.servers – CoverosGene 2010-01-29 17:16:19

-1

我完全不知道,但可能會有所幫助。 可能是你需要使用密鑰庫添加cerificate到jvm

0

Alexey有正確的想法。

日誌:

SEND SSLv3 ALERT: warning, description = no_certificate 

此討論in the Java Programming forum

也許你的eclipse和Hudson從不同的JRE開始(客戶端JRE與JDK JRE?)。每個JRE都有​​自己的密鑰庫。這可能會導致無法配置的混亂。

+0

他們在不同的系統上,所以他們肯定是不同的密鑰庫。在Eclipse上,我可以連接,我沒有添加證書給cacert。在Hudson框中,我已將服務器證書頒發機構添加到cacert文件。 – CoverosGene 2009-11-06 15:30:04

+0

這些是不同的JDK版本嗎?根證書有時會發生變化。 – 2009-11-06 15:49:55

+0

兩者都是JDK 1.6.0_17 – CoverosGene 2009-11-06 16:29:31

0

我在我的Ubuntu服務器上遇到了同樣的問題。安裝證書沒有幫助。解決方案是將默認的Java(java-6-openjdk)變爲Sun Java(java-6-sun)。