2013-10-18 100 views
5

我的開發人員OP團隊希望在我們的Java密鑰庫中使用中級CA證書。我相信在密鑰庫中添加中間證書的過程與添加「常規證書」的過程相同,對嗎?是否有任何我需要注意的「陷阱」?另外,如何在測試中驗證Java使用中間證書而不是使用CA進行檢查?Java密鑰庫中的中間CA證書

回答

5

要回答爲了您的問題:

我相信加入中間證書到密鑰庫是相同的過程,如添加一個「正規證書」,正確嗎?

是的。例如,請參閱this VMWare documentation on installing intermediate CA's

我需要注意哪些「疑難雜症」?

只有每個中間CA都需要它自己的別名。

此外,如何在測試中驗證Java使用中間證書而不是使用CA進行檢查?

如果你只是想驗證它不檢查根CA,那麼就不要安裝它,你知道它不能被使用。

更新:作爲對@布魯諾評論的迴應,公平地指出,這個答案只能解決問題中提出的問題。我在這裏假設,關於信任和證書分發的問題,首先有中間CA的正常原因,已經得到處理,並且這是所期望的解決方案。有關這些問題的更多信息,請參閱Bruno's answer

+0

實際上有些問題需要注意,別名命名是最少的問題。不確定這與「與CA聯繫」有什麼關係。證書吊銷使用到CA的在線連接,建立一個可信賴的證書鏈沒有。 – Bruno

+0

@布魯諾關於「聯繫CA」,你說得對...不知道腦屁是從哪裏來的。固定。您在查看信任鏈設置時需要考慮其他問題是正確的,但在處理Jay提出的唯一問題時,則可以忽略這些問題。然而,我會添加一個聲明來指出他們正在被忽略。 –

6

您需要根據證書鏈進行推理。中間CA證書的目標是讓遠程方在最終實體證書(例如服務器或客戶端證書本身)和另一個CA證書之間建立鏈。

如果您正在討論將此中間CA證書導入將用作信任庫的密鑰庫,則無論該CA證書是中間證書還是「根」CA證書都無關緊要:它將成爲像使用該信任庫的應用程序一樣的可信錨點。

如果您在談論用作密鑰庫的密鑰庫,則需要確保您的EEC將與正確的鏈一起出現。例如,我們假設CA_1爲CA_2頒發證書,該證書頒發服務器S的證書。 您的客戶在其受信任的錨(但不一定是CA_2)中擁有證書CA_1:您需要提供一個鏈「 S,CA_2「,以便他們可以通過CA_2驗證鏈(否則,他們不知道如何將CA_1鏈接到S)。

爲此,您需要確保S及其私鑰的條目包含它需要發送的鏈(S,CA_2),而不僅僅是證書S.將密鑰庫中的單獨條目中的CA_2導入將不會當提交證書S時,讓JSSE爲您建立鏈。

this answer(儘管這是從客戶端證書的角度來看)中描述瞭如何實現。