java - 使用 Java (SunMSCAPI) 访问 Windows 本地计算机个人密钥库
问题描述
有没有办法使用SunMSCAPI使用 Java 访问 Windows本地机器个人密钥存储?
通常,您可以使用WINDOWS-ROOT(大致相当于Java中的受信任存储)或WINDOWS-MY(包含个人证书,大致相当于Java中的密钥存储)从windows证书中检索证书贮存。
这对用户来说很好,但即使在模拟 SYSTEM 用户时,我也无法检索本地机器的个人证书。
存在一些使用 JNA的问题(我想避免,特别是因为从那里检索私钥似乎很复杂)。
此外,有人使用 psexec来模拟 SYSTEM 用户(使用psexec -s)。我也试过这个,但没有成功。最后, Java Bug System 中
还有一个未公开的错误。
如果有人知道如何使用 Java 从 Windows 中的本地计算机个人存储中检索证书,我将不胜感激。
解决方案
是和不是。您可以使用该wcsa
实用程序,它将拦截对 Windows Crypto API 的 JVM 调用,并让您访问本地计算机凭据。这当然是对十年前报告的真正问题JDK-6782021的破解。但它确实让您以一种非常轻松的方式访问本地机器证书!
所以是的,可以访问它们,但是不,不可能使用纯 Java API 访问它们。不过,您可以使用商业产品JCAPI使用普通 Java 访问它们,但对于大多数用途来说,wcsa
util 都很好。
不过,Open JDK 维护人员愿意打补丁,所以也许您可以使用wcsa
repo 中提供的代码尝试修复它:)
推荐阅读
- machine-learning - ML分类,如何处理一个有2个信息的单元格?
- filesystems - moosefs - 我在“sustained”文件夹中有一些挥之不去的文件(挂载-o mfsmeta),我该如何清理?
- node.js - 如何删除双引号
- java - Android 应用程序中的“无法解决”异常
- codeigniter - 此表单和选择选项有问题,并且电子邮件未发送
- wayland - 如何在不相关的代码部分之间共享wayland显示连接
- node.js - 节点:等待异步多个图像加载完成
- sql - 将过滤器应用于铸造柱
- html - 引导网格,在 750 像素处折叠
- javascript - 尝试使用动态列旋转表