0

我们正在尝试使用 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));
    }

以及应用服务器上证书存储的屏幕截图。如您所见,我希望列出两个别名(但也许我在寻找错误的位置?): 在此处输入图像描述

4

1 回答 1

2

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

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

证书管理器

于 2017-10-25T07:16:41.867 回答