【问题标题】:How to enable HTTPS on Tomcat in a Docker Container?如何在 Docker 容器中的 Tomcat 上启用 HTTPS?
【发布时间】:2019-01-23 13:57:49
【问题描述】:

我是 Tomcat 和 Docker 的新手,我一直在尝试在我的网站上启用 https。首先在服务器上,而不是在任何容器中:

a) 我生成了一份 CSR

b) 获得商业 SSL 证书

c) 将证书放在服务器 /etc/docker/certs 上的文件夹中

d) 然后使用以下配置创建我的 Docker 容器

我可以使用命令docker exec -it <container-id> sh 来导航我的容器。我可以编辑server.xmlweb.xml,但我意识到如果我希望 https 配置在单个容器之后持续存在,我应该在容器外部的操作系统级别安装证书。换句话说,我应该能够删除一个容器,然后再创建一个,而无需重新安装 ssl。

我该怎么做?有任何想法吗?。提前致谢!以下是我的配置:

1.数据库

docker run -d --name=example-db --restart=always --net=example-net --mount type=volume,src=mydbdata,target=/example-db --hostname=example-db -e POSTGRES_DB=mydb -e POSTGRES_USER=myuser -e POSTGRES_PASSWORD=secret myapp/db

2.应用

docker run -d --name=example-app --restart=always --mount type=volume,src=mydata,target=/example-app -p 80:8080 --net=example-net -e DB_HOST=example-db -e DB_NAME=mydb -e DB_USER=myuser -e DB_PASSWORD=secret myapp/myapp

再次感谢您的帮助。 艺术

【问题讨论】:

    标签: docker ssl tomcat https


    【解决方案1】:

    您可以使用bind mountsdocker run 时间将外部证书映射到容器中。假设您的证书位于主机上的 /etc/docker/certs 中,并且您希望它们位于容器中的 /etc/ssl/certs 中,然后添加以下任一:

    -v /etc/docker/certs:/etc/ssl/certs:ro
    

    --mount type=bind,src=/etc/docker/certs,dst=/etc/ssl/certs,readonly
    

    在这种情况下,您的 Tomcat 配置将使用 /etc/ssl/certs 作为其路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-05
      • 2020-10-04
      • 2020-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-31
      • 2016-06-06
      相关资源
      最近更新 更多