個人用 (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 つ表示されます。
でも。
コンピューターの再起動後、コードには 1 つの証明書エイリアスのみが一覧表示されますが、システム (certmgr.msc を使用) ではまだ 2 つの証明書がアクティブになっています。
さらに、インストールされた証明書はスマートカードからのものです: - ENCARD (ENIGMA CAPI を使用) - UNIZETO CARD (詳細は不明)
APIでENCARDを使用すると問題が発生するようです。再起動後、UNIZETO カードは正常に動作します。
何か案は?