cacerts - JDK 或 JRE

cacerts - JDK or JRE

我需要在我的一台服务器上的 cacerts 中添加受信任的证书。

我可以看到它在其他 questions

$JAVA_HOME/jre/lib/security/ 之下

但是我还有第二个cacerts文件,两个位置是:

C:\Program Files\Java\jdk1.8.0_92\jre\lib\security

C:\Program Files\Java\jre1.8.0_92\lib\security

到目前为止,我一直在向两者添加任何证书,这可能是不正确的。肯定是第一种,如果是,第二种有什么用?

JDK 和 JRE 是不同的软件,尽管它们是相关的。通常,JDK 包将包括 JRE(Java 运行-time 系统)以及一些其他工具。您可以对 运行 您的代码使用其中任何一个,只要您在 运行 时不需要 JDK 功能(例如,您不是即时编译代码)。您应该将您的证书放入您实际用于 运行 您的应用程序的任何一个(JDK 或 JRE)中。

确定这一点的最简单方法是检查您的环境变量并查看您的 JAVA_HOME 变量指向哪个变量,快速 Google 搜索将告诉您如何执行此操作,如果您不知道已经知道了。如果我不得不猜测您可能应该更改 JDK 中的 cacerts 文件,但实际检查并确保总是好的。

附带说明一下,如果您在使用 Java cacerts 文件时遇到问题,请查看此处的代码(不是我的代码):https://www.cs.ucsb.edu/~pconrad/cs56/examples/ldap/SimpleQuery/InstallCert.java

我过去用它解决了很多证书问题。