【问题标题】:What format is java's cacerts format expected to be?java的cacerts格式应该是什么格式?
【发布时间】:2015-02-11 13:47:53
【问题描述】:

我对 cacerts 格式有点困惑。我最近使用的一个应用程序必须升级它的 cacerts 文件。原始的 cacerts 文件是 pk12 格式(我假设它是二进制文件),而新格式显然是 pem。我可以使用任何一个 cacert,但是当我建议有人在升级到新的 cacert 时遇到问题时,他会收到投诉,因为它不是 pk12 格式。

cacert 应该是什么文件格式?可以是任何一种格式吗?是否配置/定义了它应该期望的格式?

【问题讨论】:

    标签: java ssl pki


    【解决方案1】:

    在任何正常的 Oracle Java 安装中(在 Java 9 之前,这是一个旧答案),cacerts 应该是专有的二进制 JKS 密钥存储类型。我已经对照 1.8.0_20 进行了检查。从 9 开始,它被二进制 PKCS#12 密钥存储(或者更确切地说,受信任的证书存储)所取代。

    为了确保您可以在 GNU 系统 (Linux) 上使用 file cacerts。如果你有不同的东西,你可能有不同的 JRE,或者 cacerts 文件被替换。

    您可以使用 JDK 附带的keytool 命令管理cacerts 的内容。

    请注意,包含用于身份验证的私钥的密钥库通常 PKCS#12 密钥库。

    【讨论】:

    • Java 9 将根据 JSR 默认转换为 PKCS#12 密钥库。然而,在我的系统上,从 4 月初开始的当前开发版本(仍然?)使用 Java 密钥库来存储 cacerts
    【解决方案2】:

    也许这可能有助于其他人进行类似的搜索:我试图找到 Java 运行时环境的受信任证书颁发机构的默认列表,因为我们想将 SSL 证书安装到 Tomcat 中。最终不得不从谷歌搜索中删除 oracle 站点,并找到了这种方法来解析列表的二进制文件。祝您在 Oracle.com 上找到它!

    http://www.herongyang.com/PKI/HTTPS-Java-Default-Trusted-KeyStore-File-cacerts.html

    <java jre directory>\bin\keytool -list -keystore cacerts -storepass changeit
    

    或者您可以通过在检查 java 控制面板 - 安全 - 证书时单击“系统”选项卡来轻松完成此操作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-27
      • 2021-11-30
      • 1970-01-01
      • 2023-04-03
      • 2020-09-13
      • 1970-01-01
      • 2013-05-22
      • 2020-02-23
      相关资源
      最近更新 更多