2013-01-11 38 views
3

我試圖在JSP中顯示來自客戶端證書存儲區的證書列表。 在.NET中有顯示用下面的代碼證書列表中的一個選項...從Java API打開x509證書存儲區

X509Store xStore = new X509Store(...); 
xStore.Open(...); // This will open the list of certicates in open dialog box. 

是否有類似的功能,讓在Java中這一信息?

+0

查找到['java.security.cert'包(HTTP的類:一旦你有一個密鑰庫實例,你可以很容易地通過遍歷別名和檢查類型拿到證書// docs.oracle.com/javase/7/docs/api/java/security/cert/package-summary.html)。 –

回答

2

您可以使用默認的JDK類打開一個JKS商店,打開一個pkcs12文件,或者您需要像bouncycastle這樣的庫的類似文件。例如:

KeyStore keystore = KeyStore.getInstance("PKCS12", "BC"); 

然後加載實際密鑰庫:

keystore.load(inputStream, password); 

注意,空密碼由BouncyCastle的或JDK不同的處理(一個需要一個空字符串的其它空這個)。

Enumeration<String> aliases = keystore.aliases(); 
while (aliases.hasMoreElements()) { 
    String alias = aliases.nextElement(); 
    if (store.entryInstanceOf(alias, KeyStore.TrustedCertificateEntry.class)) 
     certificates.put(alias, (X509Certificate) store.getCertificate(alias)); 
} 
+0

感謝您的即時回覆... 通過上面的代碼,我可以獲得集合中的證書列表,現在我想顯示「選擇證書」對話框。 將爲JAVA API提供任何方法,或者我們需要創建任何小程序來顯示這樣的對話框。 再次感謝您的直接回復...... :) – user1006585

+0

「選擇證書對話框」是一個非常含糊的描述。我對JSP並不是很熟悉,但我會假設一個經典的