配置docker run以使用SSL / HTTPS / TLS

5
有没有一种方法可以配置Docker Run使用HTTPS? 像这样的东西:
docker run --https --certs xyz  myimage 

或者说您必须在Dockerfile /镜像中配置这些内容吗?同样适用于TLS。
 docker run --tls --certs xyz  myimage 

一项优点是我们不需要将证书复制到镜像中,我宁愿避免将证书放在镜像和/或运行的容器中。
尽管我猜最佳实践是使用-v选项将证书从主机共享到容器中。
更新:经过一些研究,我发现这个链接: https://docs.docker.com/engine/security/https/ 它说要用类似这样的方式启动docker域:
 dockerd --tlsverify --tlscacert=ca.pem \
   --tlscert=server-cert.pem --tlskey=server-key.pem \
   -H=0.0.0.0:2376

这样做是否是保护机器上所有容器的正确方式?

1个回答

3
dockerd的TLS选项用于配置守护进程以侦听网络端口,而不是或除了docker.sock。这是用于docker API请求的,而不是用于到达应用程序的。我不认为你所要求的是这个。

看起来你正在寻找TLS终止并将请求转发到应用程序中的HTTP。为此,有各种反向代理可以运行在容器前面。例如nginx、traefik、haproxy,我相信大多数,如果不是全部,都支持TLS终止。它们倾向于专注于第7层和HTTP协议,因此如果您有其他类型的协议,您可能需要将TLS凭据装入容器,最好是作为一个secret或者至少是只读卷。


"tls终止" - user5047085
“TLS终止”是指在你和目标之间的某个服务器将充当TLS连接的目标服务器。例如,您在路由器上设置了一个TLS终止器,在家庭网络中,每个人都通过HTTPS/TLS连接到这个路由器,然后路由器看到明文未加密的流量,因此它可以分析或转发到一些不使用HTTPS的地方,就像您的情况一样。在企业环境中,该流量会被分析以检测威胁/滥用行为,然后再次加密并转发到目标服务器。 - adamczi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接