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

标签 java docker https docker-compose docker-machine

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

知道在 Docker 容器内运行的 Java 服务如何选择 JRE cacert 随着新证书导入的变化?

最佳答案

Hence imported the self-signed certificate of HTTPS external URL into Docker container's JRE cacert keystore.

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

将其导入容器只会创建 temporary writable data layer ,当您重新启动容器时将被丢弃。

类似于 this answer :

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

关于java - 将自签名证书导入 Docker 的 JRE cacert 服务无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41497871/

相关文章:

java - 在 JApplet 中显示骰子图像时出现问题

java - Esper:如何对温度过高做出即时 react ,并且每30秒快照一次?

java - com.google.gwt.ajaxloader.client.AjaxLoader 类型没有可用的源代码;

docker - 从什么时候将用户添加到 docker 组不足以执行 docker 客户端,我每次都需要 `newgrp docker`?

在 sudo apt-get update 上找不到用于拉伸(stretch)发布的 Docker 包

docker - 绑定(bind)挂载和卷 : Files do not end up in the container?

java - apache httpclient 内容长度问题

apache - 将 http 重定向到 https bitnami apache

python - 无法在 python2.7 上使用 urllib 访问 https 站点

java - Jsoup HTTPS 连接