我正在处理这个 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 文件中导入的证书,但是我无法获得与该证书对应的私钥,相反,我只是得到空值。
围绕这个问题有什么帮助吗?提前致谢