如何在Azul Zulu JDK 11中将证书导入密钥库。
keytool使用的默认密钥库在哪里。
/lib/security/cacerts
我花了一些时间才找到它,但在这里找到了答案:OpenJDK 10 现在包括根 CA 证书。
当你使用 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
对于
adoptopenjdk/openjdk11@sha256:1cf34e59b4f6209c8513a1681a688bf8a90bf433993aa5b3914dcfdb100e9393
,cacerts的位置是:
/opt/java/openjdk/lib/security/cacerts
我通过 SDKMan
安装了 Azul Zulu Java 8 和 Java 11。
我的实例的 cacerts
文件如下:
Java 11
~/.sdkman/candidates/java/11.0.14-zulu/zulu-11.jdk/Contents/Home/lib/security
Java 8
请注意额外的jre/
文件夹
~/.sdkman/candidates/java/8.0.322-zulu/zulu-8.jdk/Contents/Home/jre/lib/security