我正在尝试从本地计算机Windows存储获取证书。想要获得的是位于“证书(本地计算机)->个人->证书”中的证书。
我使用此代码在“证书-当前用户->个人->证书
NativeLibrary crypt32 = NativeLibrary.getInstance("Crypt32");
Function functionCertOpenSystemStore =
crypt32.getFunction("CertOpenSystemStoreA");
Object[] argsCertOpenSystemStore = new Object[] { 0, "MY"};
HANDLE h = (HANDLE) functionCertOpenSystemStore.invoke(HANDLE.class, argsCertOpenSystemStore);
关于如何从“证书(本地计算机)->个人->证书”中获取证书的任何想法?
我正在尝试使用JNA,因为我无法读取从Java访问本地计算机证书的信息。我唯一需要做的就是使用这样的密钥库来获取“当前用户”证书:
KeyStore ks = KeyStore.getInstance("Windows-MY", "SunMSCAPI");
我也尝试过:
KeyStore ks = KeyStore.getInstance("Windows-ROOT", "SunMSCAPI");
有人可以给我一个线索吗?
答案 0 :(得分:0)
是的,您可以使用the wcsa
utility,它将拦截对Windows Crypto API的调用,并允许您访问本地计算机凭据。当然,这是针对十年前发生的实际问题JDK-6782021的破解。但这确实使您可以轻松访问本地计算机证书!