是否可以使用 SunMSCAPI 使用Java访问Windows 本地计算机个人密钥存储?
通常,您可以使用 WINDOWS-ROOT (与Java中的受信任存储大致等效)或 WINDOWS-MY (其中包含个人证书,大致相当于Java中的密钥存储),以便从Windows证书存储中检索证书。
这对用户来说很好用,但是即使模拟了SYSTEM用户,我也无法检索本地计算机的个人证书。
关于some存在着use JNA个问题(我想避免,尤其是因为从那里检索私钥似乎很复杂)。
另外,有人used psexec模仿了SYSTEM用户(使用 psexec -s )。我也尝试过,但是没有成功。
最后,Java Bug系统中还有一个open bug。
如果有人对如何使用Java从Windows的本地计算机个人存储中检索证书有想法,
答案 0 :(得分:0)
是和否。您可以使用the wcsa
utility,它将拦截对Windows Crypto API的JVM调用,并允许您访问本地计算机凭据。当然,这是针对十年前发生的实际问题JDK-6782021的破解。但这确实使您可以轻松访问本地计算机证书!
是的,可以访问它们,但是不能,不能使用普通的Java API访问它们。虽然您可以 使用商业产品JCAPI使用普通Java来访问它们,但是对于大多数使用wcsa
util来说还是不错的。
The Open JDK maintainers are willing to take a patch, though,所以也许您可以使用wcsa
回购中提供的代码来修复它:)