检索并使用 Root-CA Microsoft或 Mozilla 列表,并在 Java 中使用它



Windows版OpenJDK中包含的root-CA证书列表令人印象深刻,但是有很多根CA证书被Firefox等常见浏览器信任,而Java却不信任。

Microsoft和Mozilla都发布了他们当前的根CA证书列表,但使用的文件格式似乎是专有的。

curl 项目有一个使用 Mozilla 文件作为源代码的自动转换器,但是这个转换器 (mk-ca-bundle( 是一个 Perl 脚本。

有没有办法用普通的Java读取这些列表之一,以便以后可以将其用作信任存储?

OpenJDK 描述了他们如何在 OpenJDK 存储库的安全文件中构建cacerts文件。该脚本从 Mozilla 下载证书:

wget https://hg.mozilla.org/mozilla-central/raw-file/tip/security/nss/lib/ckfw/builtins/certdata.txt .

根据存储库说明,您可以构建自己的cacerts文件,该文件将信任您选择的另一个证书列表:

  1. 下载以下 Perl 脚本:https://raw.githubusercontent.com/curl/curl/master/lib/mk-ca-bundle.pl

  2. 下载以下 Java 应用程序:https://github.com/use-sparingly/keyutil/releases/download/0.4.0/keyutil-0.4.0.jar(源代码可在 https://github.com/use-sparingly/keyutil 获得(

  3. 使用以下命令运行提供的GenerateCertsFile.sh脚本:bash ./GenerateCertsFile.sh - 这将使用上述文件,假设它们与脚本位于同一目录中

  4. 使用提供的证书:它必须在jdk/jre/lib/securityjdk/lib/securityfolder

最新更新