可能重复:
我可以通过 java 在我的系统上安装证书吗
我们的网站允许用户在他们的 Windows 客户端中安装客户端 x.509 数字证书。我们需要检查登录我们网站的用户是否成功安装了我们的数字认证。我们决定使用 java 小程序检查这个数字证书,但谷歌没有提供可用的方法。如何使用 java 小程序检查他们的 Windows 客户端中是否安装了数字证书?
可能重复:
我可以通过 java 在我的系统上安装证书吗
我们的网站允许用户在他们的 Windows 客户端中安装客户端 x.509 数字证书。我们需要检查登录我们网站的用户是否成功安装了我们的数字认证。我们决定使用 java 小程序检查这个数字证书,但谷歌没有提供可用的方法。如何使用 java 小程序检查他们的 Windows 客户端中是否安装了数字证书?
以下是从 Windows 证书存储中读取证书的方法:
KeyStore ks = KeyStore.getInstance("Windows-MY", "SunMSCAPI");
ks.load(null, null);
Enumeration<String> aliases = ks.aliases();
while (aliases.hasMoreElements()) {
String alias = (String) aliases.nextElement();
X509CertImpl certificate = (X509CertImpl)ks.getCertificate(alias);
System.out.println("Alias: " + alias);
System.out.println(" Subject: " + certificate.getSubjectDN());
System.out.println(" Issued By: " + certificate.getIssuerDN());
if (ks.isKeyEntry(alias)) {
System.out.println(" Has private key");
}
}
http://docs.oracle.com/javase/6/docs/technotes/guides/security/SunProviders.html#SunMSCAPI