从Java API打开x509证书库

时间:2013-01-11 06:24:47

标签: java x509certificate digital-certificate e-token

我试图在JSP中显示来自客户端证书存储的证书列表。 在.Net中,可以选择使用以下代码显示证书列表...

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

是否有任何类似的功能可以用Java获取此信息?

1 个答案:

答案 0 :(得分:2)

您可以使用默认的JDK类打开JKS商店,打开pkcs12文件或您需要像bouncycastle这样的库。例如:

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

然后加载实际的密钥库:

keystore.load(inputStream, password);

请注意,空密码由bouncycastle或jdk以不同方式处理(一个空字符串需要另一个空字符串iirc)。拥有密钥库实例后,您可以通过循环遍历别名并检查类型来轻松获取证书:

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));
}