【问题标题】:How can I check if a windows digit certificate installed in a client windows system using java? [duplicate]如何检查是否在使用 java 的客户端 Windows 系统中安装了 Windows 数字证书? [复制]
【发布时间】:2012-12-29 17:49:31
【问题描述】:

可能重复:
Can i get installed certificate on my system through java

我们的网站允许用户在其 Windows 客户端中安装客户端 x.509 数字证书。我们需要检查登录我们网站的用户是否成功安装了我们的数字认证。 我们决定使用 java 小程序检查这个数字证书,但谷歌没有提供可用的方法。如何使用 java 小程序检查他们的 Windows 客户端中是否安装了数字证书?

【问题讨论】:

  • 什么是“数字证书”?

标签: java certificate


【解决方案1】:

以下是您从 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

【讨论】:

    猜你喜欢
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    • 2020-01-15
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 2011-01-01
    相关资源
    最近更新 更多