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

2024-04-13

OpenJDK for Windows 中包含的根 CA 证书列表非常令人印象深刻,但有很多根 CA 证书受到 Firefox 等常见浏览器的信任,但不受 Java 信任。

Both 微软 https://support.microsoft.com/en-us/help/2677070/an-automatic-updater-of-untrusted-certificates-is-available-for-window and Mozilla https://hg.mozilla.org/projects/nss/raw-file/default/lib/ckfw/builtins/certdata.txt发布他们当前的根 CA 证书列表,但使用的文件格式似乎是专有的。

curl 项目有一个使用 Mozilla 文件作为源的自动转换器,但是该转换器(mk-ca-捆绑包 https://curl.haxx.se/docs/mk-ca-bundle.html) 是一个 Perl 脚本。

有没有一种方法可以使用纯 Java 读取这些列表之一,以便之后可以将其用作信任存储?


OpenJDK 描述了他们如何构建cacerts文件在OpenJDK 存储库的安全文件 https://github.com/AdoptOpenJDK/openjdk-build/tree/master/security。该脚本从 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 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/releases/download/0.4.0/keyutil-0.4.0.jar(来源可在https://github.com/use-sparingly/keyutil https://github.com/use-sparingly/keyutil)

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

  4. 使用提供的证书:它必须位于jdk/jre/lib/security or jdk/lib/securityfolder

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检索并使用 Microsoft 或 Mozilla 的 Root-CA 列表并在 Java 中使用它? 的相关文章

随机推荐