通过 Java 访问 Windows Certificate Store 证书?

我希望编写一些可以在CurrentUser/My和LocalMachine/My中枚举和使用(签名)证书的东西,但我无法找到Windows证书存储的任何内容,只有Java自己的秘密存储。这个链接看起来很有前途,但我只能使用Java附带的内容。

我以前在SO上发现了这个问题,但它来自五年前,这是计算机时代的很长一段时间。谢谢!


答案 1

使用 启动 Java。-Djavax.net.ssl.trustStoreType=WINDOWS-ROOT

有关详细信息,请参阅 https://www.oracle.com/technical-resources/articles/javase/security.html


答案 2

Java的跨平台性质有其自身的缺点 - 如果没有外部库,您将无法访问某些(或许多)特定于操作系统的内容。Windows 证书存储只能通过 Java 默认安装不支持的 CryptoAPI 本机函数进行访问。

你可以看看这个线程:从Java调用Win32 API方法

如果可以使用 JNA,则可以使用 crypt32.dll 中的各种证书和证书存储函数来枚举证书并执行签名操作。


推荐