gpt4 book ai didi

java - 使用 Java 访问 Windows 本地计算机个人 keystore (SunMSCAPI)

转载 作者:太空宇宙 更新时间:2023-11-04 10:20:41 25 4
gpt4 key购买 nike

有没有办法使用SunMSCAPI通过Java访问Windows本地计算机个人 key 存储?

通常,您可以使用WINDOWS-ROOT(大致相当于Java中的受信任存储)或WINDOWS-MY(其中包含个人证书,大致相当于Java中的 key 存储)从Windows证书存储中检索证书。

这对于用户来说效果很好,但即使在模拟 SYSTEM 用户时,我也无法检索本地计算机的个人证书。

存在some与此相关的问题use JNA (我想避免这种情况,特别是因为从那里检索私钥似乎很复杂)。
另外,有人used psexec模拟 SYSTEM 用户(使用 psexec -s)。我也尝试过这个,但没有成功。
最后还有一个open bug在 Java Bug 系统中。

如果有人知道如何使用 Java 从 Windows 中的本地计算机个人存储中检索证书,我将不胜感激。

最佳答案

更新

在 bug 跟踪器工作十四年后,JDK-6782021最终在 Java 19(2022 年 Spring )中修复。这意味着这不再是问题。

<小时/>

原始答案

否。您可以使用the wcsa utility ,它将拦截 JVM 对 Windows Crypto API 的调用,并让您访问本地计算机凭据。这当然是围绕真正问题的破解,JDK-6782021 ,这是十年前的报道。但它确实可以让您以非常轻松的方式访问本地计算机证书!

所以,是的,可以访问它们,但是不行,不可能使用普通的 Java API 来访问它们。您可以使用商业产品 JCAPI 使用普通 Java 来访问它们,但是对于大多数用途来说,wcsa util 就可以了。

The Open JDK maintainers are willing to take a patch, though ,所以也许您可以尝试使用 wcsa 存储库中提供的代码来修复它:)

关于java - 使用 Java 访问 Windows 本地计算机个人 keystore (SunMSCAPI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51205158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com