SunMSCAPI returns 没有证书

SunMSCAPI returns no certificates

我们正在尝试使用 SunMSCAPI 从 Windows 证书存储中检索证书。我创建了一个非常简单的示例来加载密钥库并列出可用的别名。但是,代码没有列出任何内容,即使我在密钥库中看到两个个人证书。

顺便说一句,在我自己的系统上它运行良好,但在我们将使用的实际应用服务器上它没有列出任何内容。

下面是我使用的代码

    KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
    KeyStore ks = KeyStore.getInstance("Windows-MY");
    ks.load(null, null);

    Enumeration<String> aliases = ks.aliases();

    System.out.println("Listing aliases " + ks.size());
    while (aliases.hasMoreElements())
    {
        String ka = aliases.nextElement();

        System.out.println(ka + " " + ks.isKeyEntry(ka));
    }

以及应用服务器上证书存储的屏幕截图。如您所见,我希望列出两个别名(但也许我找错了位置?):

您看到的是计算机证书,而不是用户证书。 Windows-MY keystore 只能使用个人用户证书。

您可以在控制面板中使用管理用户证书 (certmgr )而不是管理计算机证书来浏览个人证书(certIm)