我有一个头盔图表。部署时会创建以下 Kubernetes 资源:
问题是我的容器无法与我的服务通信,除非我将 SSL 证书添加到 Java 证书中。我通过使用root用户在 docker 中手动运行以下命令来完成此操作。
cd ${JAVA_HOME}/jre/lib/security
keytool -keystore cacerts -storepass changeit -noprompt -trustcacerts -importcert -alias myservicecert -file /home/myuser/.myservice/certs/public.crt
Run Code Online (Sandbox Code Playgroud)
我想自动化上述步骤,但面临问题:
Dockerfile因为当时证书不可用。显而易见。entrypoint.shdocker 文件中添加这些步骤,因为入口点文件是由与 root 不同的用户执行的。${JAVA_HOME}/jre/lib/security/cacerts,777以便我可以entrypoint.sh毫无问题地运行这些命令。但出于安全原因,我不确定这是否是正确的方法。对此有何建议?Djavax.net.ssl.trustStore因为这样 java 将无法访问根证书。实现这一目标的正确方法是什么?