一尘不染

服务无法识别将自签名证书导入Docker的JRE cacert

docker

  • Java服务正在Docker容器内运行,该容器访问外部HTTPS URL,并且服务/ JRE cacert密钥库无法使用其自签名证书,因此连接失败。
  • 因此,将HTTPS外部URL的自签名证书导入到Docker容器的JRE cacert密钥库中。(检查环境$JAVA_HOME变量后)
  • 重新启动Docker容器(使用docker restart命令),希望服务也重新启动并从JRE cacert中选择更改。但这没有发生,Java服务仍然无法访问外部HTTPS URL。

知道在Docker容器中运行的Java服务如何通过新证书导入来选择JRE cacert更改吗?


阅读 320

收藏
2020-06-17

共1个答案

一尘不染

因此,将HTTPS外部URL的自签名证书导入到Docker容器的JRE cacert密钥库中。

否:您需要将其导入运行容器的Docker 映像

将其导入容器只会创建一个临时的可写数据层,当您重新启动容器时,它将被丢弃。

USER root
COPY ldap.cer $JAVA_HOME/jre/lib/security
RUN \
    cd $JAVA_HOME/jre/lib/security \
    && keytool -keystore cacerts -storepass changeit -noprompt -trustcacerts -importcert -alias ldapcert -file ldap.cer
2020-06-17