2014-11-21 340 views
2

我有兩個SSL證書文件。第一個標記爲「OU =證書頒發機構」,第二個標記爲「OU =根證書」。我們的C++應用程序爲正確的客戶端/服務器握手加載這些證書。如何在Java KeyStore中加載多個SSL證書?

我現在需要在我的Android代碼中使用這些證書。我已經能夠使用CertificateFactory.generateCertificate()方法成功讀取這些證書。

接下來,我需要將這些證書存儲在密鑰庫中。這裏是我發現的示例代碼:

String keyStoreType = KeyStore.getDefaultType(); 
    KeyStore keyStore = KeyStore.getInstance(keyStoreType); 
    keyStore.load(null, null); 
    keyStore.setCertificateEntry("ca", ca); 

我很困惑如何存儲根證書。我是否再次撥打setCertificateEntry()作爲第二個證書並傳入一些隨機別名?

我在KeyStore上看到另一種方法setEntry。我應該使用這種方法嗎?問候。

回答

3

用另一個別名再次調用它。

例子:

keyStore.setCertificateEntry("ca", ca); 
keyStore.setCertificateEntry("debug", ca2); 

由於@Peter提到的有可能是與別名無相互作用。

+0

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 – AstroCB 2014-11-21 23:53:05

+1

@AstroCB。其實,它確實如此。 – Bruno 2014-11-22 00:03:25

+1

那很簡單。隨着更改,看起來像我的客戶端能夠連接到服務器。猜測別名對於客戶端/服務器握手毫無意義。感謝您的幫助。 – Peter 2014-11-22 00:12:44