我試圖在JSP中顯示來自客戶端證書存儲區的證書列表。 在.NET中有顯示用下面的代碼證書列表中的一個選項...從Java API打開x509證書存儲區
X509Store xStore = new X509Store(...);
xStore.Open(...); // This will open the list of certicates in open dialog box.
是否有類似的功能,讓在Java中這一信息?
我試圖在JSP中顯示來自客戶端證書存儲區的證書列表。 在.NET中有顯示用下面的代碼證書列表中的一個選項...從Java API打開x509證書存儲區
X509Store xStore = new X509Store(...);
xStore.Open(...); // This will open the list of certicates in open dialog box.
是否有類似的功能,讓在Java中這一信息?
您可以使用默認的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));
}
感謝您的即時回覆... 通過上面的代碼,我可以獲得集合中的證書列表,現在我想顯示「選擇證書」對話框。 將爲JAVA API提供任何方法,或者我們需要創建任何小程序來顯示這樣的對話框。 再次感謝您的直接回復...... :) – user1006585
「選擇證書對話框」是一個非常含糊的描述。我對JSP並不是很熟悉,但我會假設一個經典的
好的..我將添加「下拉列表」而不是「對話框」。但是,如果我們想從客戶端機器獲取證書列表,我們需要從客戶端機器執行代碼,如果我在servlet中寫入獲取證書邏輯,那將只獲得服務證書。所以我打算在Applet中實現。有沒有什麼辦法來克服這個......和其他解決方案沒有小程序... 謝謝.... – user1006585
查找到['java.security.cert'包(HTTP的類:一旦你有一個密鑰庫實例,你可以很容易地通過遍歷別名和檢查類型拿到證書// docs.oracle.com/javase/7/docs/api/java/security/cert/package-summary.html)。 –