【发布时间】:2018-04-16 13:41:01
【问题描述】:
我正在处理这个 Java 项目,我需要使用提供程序 SunMSCAPI 从 Windows KeyStore 加载私钥,但我根本不提供任何密码,我不知道是否需要这样做。 这是我正在做的示例测试用例:
public static void main(String[] args) throws Throwable {
Provider provider = Security.getProvider("SunMSCAPI");
KeyStore wins=KeyStore.getInstance("Windows-MY", provider);
wins.load(null, null);
Enumeration<String> aliases = wins.aliases();
while (aliases.hasMoreElements()) {
String alias = (String) aliases.nextElement();
System.out.println(alias);
Certificate[] chain = wins.getCertificateChain(alias);
X509Certificate[] x509 = CERManager.toX509(chain);
for (int i = 0; i < x509.length; i++) {
System.out.println(x509[i].getSubjectX500Principal());
}
Key key = wins.getKey(alias, "1234".toCharArray());
System.out.println(key);
}
}
当我运行它时,我得到了一些我之前使用 Adobe Reader 从 pfx 文件中导入的证书,但我无法获得与该证书对应的私钥,而是得到了 null。
有关此问题的任何帮助?提前谢谢
【问题讨论】:
标签: java windows keystore mscapi