2

出于某些签名目的,我必须访问 Windows 证书存储区才能访问证书。目前我正在使用以下方法访问密钥库:

KeyStore personalKS = KeyStore.getInstance("Windows-MY");
personalKS.load(null, null);

这适用于 JDK1.6 并满足我的所有要求。但是,由于“无法避免的配置和遗留问题”(让我们暂时搁置),我必须移植代码以使其在编译时与 JDK 1.4 兼容。我在 1.4 上运行它时遇到的问题是它无法找到 WINDOWS-MY 密钥库:

java.security.KeyStoreException: Windows-MY not found

我认为在 1.4 编译时在 JRE1.6 上运行时应该可以正常运行。不过,任何人都可以确认这个 KeyStore 是否只是运行时依赖项?另外,我可以使用任何其他第三方提供商来提供对 JDK1.4 级别的 WINDOWS-MY KeyStore 的支持吗?

4

1 回答 1

2

它是一种运行时依赖关系,因为密钥库实现在 Java 加密提供程序中。提供者本身只是存在于.jar文件中。但是有一个问题:提供者需要签名,并且需要为正确的运行时签名。从 1.5 开始,相同的签名似乎也适用于以后的运行时,但对于 1.4 肯定不是这样。

对 Windows 密钥库的支持相对较新。1.6之前没听说过。在 1.4 中创建一个可以执行此操作的提供程序将非常棘手,所以我不会屏住呼吸。可以肯定的是,将签名过程替换为 Windows 特定的签名过程会更加容易(从开发的角度来看)。

于 2013-10-30T20:34:42.150 回答