[英]Accessing keystore certificates in Java
我正在開發一個Java小程序,用於在Web瀏覽器中唱歌PDF文檔。 該小程序必須能夠與Windows和Mac OS一起使用。 小程序將在用戶的計算機上顯示已安裝證書的列表,並允許用戶選擇其中一個進行簽名。
example working with certificates in Java for Mac OS. 我發現的例子如何讀取使用的“Windows-MY”標識從Windows密鑰庫證書,但我找不到例子在Java證書用於Mac OS工作。 如何在Mac上的密鑰庫中讀取證書列表?
我是Java編程的新手(主要是.NET Web開發人員),也許我錯過了一些東西。 感謝您的任何幫助。
在此處進行記錄: Java密碼體系結構JDK 8的Oracle提供程序文檔
您應該閱讀整個頁面,但問題的相關部分在底部:
Apple提供程序實現了java.security.KeyStore,它提供了對Mac OS X鑰匙串的訪問。 Apple提供程序中提供了以下算法:
引擎:密鑰庫
算法名稱:KeychainStore
因此,換句話說:通過使用名稱“ KeychainStore ”獲得Mac OS X鑰匙串的KeyStore對象:
KeyStore ks = KeyStore.getInstance("KeychainStore");
之后,它與其他所有密鑰庫類型基本相同。 例如,列出所有證書及其別名:
ks.load(null, null);
Enumeration<String> en = ks.aliases();
while (en.hasMoreElements()) {
String aliasKey = en.nextElement();
X509Certificate c = (X509Certificate) ks.getCertificate(aliasKey);
System.out.println("alias: " + aliasKey);
System.out.println("cert:" + c.getSubjectX500Principal().toString());
}
順便說一句,瀏覽器供應商和甲骨文正在逐步淘汰小應用程序的瀏覽器插件。 Java Web Start可能是替代方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.