java - 使用 Microsoft Crypto API(Windows 证书存储)时如何隐藏和使用对话框

标签 java windows cryptography certificate keystore

我想在我的 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 keystoreHow to use the Windows Keystore (MCS) with JDBC?

关于java - 使用 Microsoft Crypto API(Windows 证书存储)时如何隐藏和使用对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33373337/

相关文章:

java - 引起一致的 GC Churn 的技术

c++ - Win32下堆损坏;如何定位?

c# - c DES 和 C# DES 问题

java - Java程序的内存消耗问题

java - 如何将微调器与我的转换器连接

c++ - 有没有办法在 C++ 中检测或更改 EOL 格式从 Windows 到 Linux?

linux - 从 Go 程序中读取媒体 key

javascript - 合并/交织 2 个不同长度的字符串

c++ - HashVerificationFilter 和 "message hash or MAC not valid"异常

java - 我试图从 cronjob 调用 gradle,但它似乎没有被执行