我试图在 JSP 中显示来自客户端证书存储的证书列表。 在 .Net 中,有一个选项可以使用以下代码显示证书列表...
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 :
keystore.load(inputStream, password);
请注意,bouncycaSTLe 或 jdk 对空密码的处理方式不同(一个需要空字符串,另一个需要 null iirc)。拥有 keystore 实例后,您可以通过遍历别名并检查类型来轻松获取证书:
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 - 从 Java API 打开 x509 证书存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14272842/