有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

x509证书从Java API打开x509证书存储

我试图在JSP中显示来自客户端证书存储的证书列表。 在里面Net有一个选项可以显示证书列表,其中包含以下代码

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

在Java中有没有类似的功能来获取这些信息


共 (1) 个答案

  1. # 1 楼答案

    您可以使用默认的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));
    }