2

我在列出我的个人(Windows)密钥库中安装的所有可用证书时遇到问题。

我使用以下代码获取所有证书别名的列表:

public static void main(String[] args) {
    try {
        KeyStore ks = KeyStore.getInstance("Windows-MY");
        ks.load(null, null);
        Enumeration<String> en = ks.aliases();

        while (en.hasMoreElements()) {
            String aliasKey = (String) en.nextElement();

            System.out.println("---> alias '" + aliasKey + "'");
            //TODO GET CERT ETC 
        }

    } catch (Exception ioe) {
        System.err.println(ioe.getMessage());
    }
}

它工作正常,列出了我最近安装的 2 个证书。

然而。

计算机重新启动后,代码仅列出一个证书别名,尽管在系统中(使用 certmgr.msc)我仍然有两个处于活动状态的证书。

更重要的是 - 安装的证书来自智能卡: - ENCARD(使用 ENIGMA CAPI) - UNIZETO CARD(不知道详细信息)

当我将 ENCARD 与 API 一起使用时,似乎出现了问题。重新启动后,UNIZETO 卡仍然可以正常工作。

有任何想法吗?

4

0 回答 0