如何将证书导入 Azul Zulu JDK 11 中的密钥库。
keytool 使用的默认密钥库在哪里
/lib/security/cacerts
我花了一段时间才找到它,但在这里找到了答案:https ://blogs.oracle.com/jtc/openjdk-10-now-includes-root-ca-certificates
通过运行 Azul 的 Alpine OpenJDK11 容器,FROM azul/zulu-openjdk-alpine:11
cacerts 文件位于/usr/lib/jvm/java-11-zulu11/jre/lib/security/
.
但是,要将新证书导入其中,您只需要指定 -cacerts 开关,该命令会处理其余部分。
下面是我在最近的 Dockerfile 中使用的命令示例:
keytool -importcert -file <my-crt-file-location> -cacerts -keypass changeit -storepass changeit -noprompt -alias <my-alias>
java 11 信任库的路径是C:\Program Files\Java\jdk-11.0.4\lib\security\cacerts
要在 Windows 中导入证书,请使用以下命令。
"C:\Program Files\Java\jdk-11.0.1\bin\keytool" -importcert -file C:\Polarion\bundled\apache\conf\certificate.crt -alias labs.polarion.com -keystore "C:\Program Files\Java\jdk-11.0.1\lib\security\jssecacerts" -storepass changeit
欲了解更多信息,请点击这里
对于 MAC 和 LINUX openJDK11
首先找到jdk位置
echo $JAVA_HOME
由于 keytool 和 cacerts 位于不同的文件夹中,我们必须指定路径
转到 keytool 文件夹 /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/bin/security
Sudo keytool -import -noprompt -trustcacerts -alias aliasName -file /Users/lilojoseph/Desktop/dev.ssk.cer -keystore /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/lib/security/cacerts -storepass changeit
检查是否添加了证书在同一文件夹上运行以下命令
keytool -list -v -keystore /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/lib/security/cacerts -alias aliasName
for
adoptopenjdk/openjdk11@sha256:1cf34e59b4f6209c8513a1681a688bf8a90bf433993aa5b3914dcfdb100e9393
, the location for cacerts is:
/opt/java/openjdk/lib/security/cacerts
我通过SDKMan
.
我的实例的cacerts
文件如下:
爪哇 11
~/.sdkman/candidates/java/11.0.14-zulu/zulu-11.jdk/Contents/Home/lib/security
爪哇 8
注意额外的jre/
文件夹
~/.sdkman/candidates/java/8.0.322-zulu/zulu-8.jdk/Contents/Home/jre/lib/security