用于Windows的OpenJDK中包含的root-CA证书的列表令人印象深刻,但是有很多root-CA证书受到Firefox等普通浏览器的信任,而Java不信任。
Microsoft和Mozilla都发布了它们当前的根CA证书列表,但是所使用的文件格式似乎是专有的。
curl项目有一个自动转换器,该转换器使用Mozilla文件作为源,但是此转换器(mk-ca-bundle)是Perl脚本。
是否可以使用纯Java读取这些列表之一,以便以后用作信任存储?
答案 0 :(得分:0)
OpenJDK描述了他们如何在Security files for OpenJDK repo中构建cacerts
文件。该脚本从Mozilla下载证书:
wget https://hg.mozilla.org/mozilla-central/raw-file/tip/security/nss/lib/ckfw/builtins/certdata.txt .
根据回购指示,您可以构建自己的cacerts
文件,该文件将信任您选择的另一份证书列表:
下载以下Perl脚本:https://raw.githubusercontent.com/curl/curl/master/lib/mk-ca-bundle.pl
下载以下Java应用程序:https://github.com/use-sparingly/keyutil/releases/download/0.4.0/keyutil-0.4.0.jar(源于https://github.com/use-sparingly/keyutil)
使用以下命令运行提供的
GenerateCertsFile.sh
脚本:bash./GenerateCertsFile.sh
-假设它们与脚本位于同一目录中,则将使用上述文件- 中
使用提供的证书:它必须位于
jdk/jre/lib/security
或jdk/lib/securityfolder