Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检索并使用Microsoft或Mozilla的根CA列表,并在Java中使用它?_Java_Ssl_Truststore_Root Certificate - Fatal编程技术网

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

检索并使用Microsoft或Mozilla的根CA列表,并在Java中使用它?,java,ssl,truststore,root-certificate,Java,Ssl,Truststore,Root Certificate,OpenJDK for Windows中包含的根CA证书列表令人印象深刻,但有许多根CA证书是受常见浏览器(如Firefox)信任的,而Java不信任这些证书 两者都发布其当前根CA证书列表,但使用的文件格式似乎是专有的 curl项目有一个自动转换器,它使用Mozilla文件作为源,但是这个转换器()是一个Perl脚本 是否有一种方法可以用普通Java读取这些列表中的一个,以便以后可以将其用作信任存储?OpenJDK介绍了它们如何在中构建cacerts文件。该脚本从Mozilla下载证书: wg

OpenJDK for Windows中包含的根CA证书列表令人印象深刻,但有许多根CA证书是受常见浏览器(如Firefox)信任的,而Java不信任这些证书

两者都发布其当前根CA证书列表,但使用的文件格式似乎是专有的

curl项目有一个自动转换器,它使用Mozilla文件作为源,但是这个转换器()是一个Perl脚本


是否有一种方法可以用普通Java读取这些列表中的一个,以便以后可以将其用作信任存储?

OpenJDK介绍了它们如何在中构建
cacerts
文件。该脚本从Mozilla下载证书:

wgethttps://hg.mozilla.org/mozilla-central/raw-file/tip/security/nss/lib/ckfw/builtins/certdata.txt .
根据回购指令,您可以构建自己的
cacerts
文件,该文件将信任您自己选择的其他证书列表:

  • 下载以下Perl脚本:

  • 下载以下Java应用程序:(源代码位于)

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

  • 使用提供的cacerts:它必须位于
    jdk/jre/lib/security
    jdk/lib/securityfolder


  • 正如我在问题中所写的,脚本是Perl——一种在普通Windows系统上不可用的语言。我正在寻找一个简单的Java解决方案。您可以使用位于的PEM文件跳过Perl脚本部分。我找到了一篇描述Microsoft格式的文章: