cacerts - 不兼容 Open JDK/JRE 与 Oracle JDK/JRE?

时间:2021-02-24 17:17:13

标签: java java-8

之间是否存在某种已知的差异或不兼容 cacerts 文件(或 cacerts 文件格式)在 Oracle JDK/JRE 8 和 Open JDK/JRE 8 下使用时?

我的意思是...似乎我们有一个 cacerts 文件可以正常使用:

(1) Oracle JRE 8(CentOS 6.8 版)
但不适用于
(2) 打开 JRE 8(CentOS 6.10 版)。

系统 (1) 上的 Java 版本是

java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

在系统 (2) 上是

openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)

我们得到的错误是这个:

java.lang.RuntimeException: Unexpected error:
java.security.InvalidAlgorithmParameterException:
the trustAnchors parameter must be non-empty

这可能是因为 JRE 不同还是我完全偏离基础而问题出在其他地方?

我在网上找不到任何好的解释。

1 个答案:

答案 0 :(得分:1)

cacerts 在 java 的次要版本更新中看到更新。 oracleJRE8 和 OpenJRE8 之间没有区别。作为旁注,JRE 作为一个概念已经过时,请远离它们(如果您(r 公司)编写了该软件并自己运行它,请在完整的 JDK 上运行它。如果其他人这样做了,请告知他们他们正在使用过时的堆栈;他们应该为您提供运行时,而不是要求您下载并安装一个并保持最新)。

许多其他内容已更改,例如默认格式(而不是 JKS,它是 PKCS12),但这只会影响制作 新密钥库时发生的情况,而未明确指定它的格式应该是(对于所有版本的 java8,java 可以并且可以读取任何一种格式) - 所以这听起来不相关。

归结为:不,没有区别。您遇到的任何问题很可能都与您的平台有关(例如,ubuntu 有一个错误,它会导致您的 cacerts 中断。长期修复,但也许您使用的是那个确切版本,或者您在运行 apt 并最终与损坏的 cacerts)。那个或一百万个其他原因 - 没有更多信息就无法判断。