繁体   English   中英

访问Java中的密钥库证书

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM