我想在我的 Java 应用程序中利用 Windows 证书存储。我可以从 Windows-MY 加载一个 keystore ,它具有我需要的所有别名/证书,但是在加载它时,我会遇到一个对话框,要求“请插入智能卡”。如果我点击取消几次,他们的 keystore 仍会加载正确的内容。
有没有办法抑制这个对话框?还有一种方法可以使用 Java 中的 Windows 证书选择框吗?我在网上看到的唯一答案是:https://social.msdn.microsoft.com/Forums/en-US/52dca221-1e05-44c1-8c45-9e0d4a807853/java-keystoreload-for-windowsmy-pops-up-insert-smart-card-window?forum=windowssecurity ,但我不想删除任何内容,因为我不希望用户那样做。
这是我加载 keystore 的方式:
KeyStore ks = KeyStore.getInstance("Windows-MY");
ks.load(null, null);
最佳答案
我从未尝试通过 keystore 加载证书,而是通过系统属性提供它们。
System.setProperty("javax.net.ssl.keyStoreType", "Windows-MY");
System.setProperty("javax.net.ssl.keyStore", "NONE");
System.setProperty("javax.net.ssl.trustStoreType", "Windows-ROOT");
System.setProperty("javax.net.ssl.trustStore", "NONE");
另见 java SSL and cert keystore和 How to use the Windows Keystore (MCS) with JDBC?
关于java - 使用 Microsoft Crypto API(Windows 证书存储)时如何隐藏和使用对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33373337/