【发布时间】:2016-12-13 03:16:08
【问题描述】:
我正在尝试找出为 EB docker 应用程序管理 HTTPS 的最佳方式。
目前我正在使用以下方法。
- ELB 接受 443 上的 HTTPS 连接,并转发到实例上的 HTTP 端口 80。
- ELB 接受 80 上的 HTTP 连接,并转发到实例上的 HTTP 端口 8080。
- 实例接受端口 80 上的 HTTP 连接并转发到 docker 应用程序。
- 实例接受端口 8080 上的 HTTP 连接并将它们重定向到 HTTPS。
这一切都运作良好。这意味着 docker 应用程序根本不必担心重定向。它只是在端口 80 上侦听,然后就可以了。剩下的工作由 ELB 和 docker 主机完成。
我对这个设置唯一关心的是 docker 应用程序不知道它是否安全运行。如果在我的应用程序中检查这个,它会失败。
我想将我的 docker 应用程序与域名和可能更改的 SSL 证书完全分开,因此我希望继续终止 ELB 上的原始 HTTPS 连接。我想知道是否有某种方法可以让 docker 主机(或 ELB)在 HTTPS 协议中转发(重新加密)请求,但使用自签名证书,所以我可以保持它完全通用。
需要明确的是,这只会在 ELB 和/或 docker 主机和我的 docker 应用之间,而不是在浏览器之间。
如果我创建了一个不会过期的自签名证书,然后在 docker 应用程序中将其注册到网络服务器(当前使用 Apache2,但可能使用 nginx),然后简单地告诉 ELB 或 docker 主机将请求作为 HTTPS 转发,这可行吗?还是会因为证书不受信任而在某个时候崩溃?
或者有什么方法可以终止 docker app web-server 上的 HTTPS 连接,而实际上不需要预先生成证书(我猜不是,因为它可能需要生成一个即时证书或其他东西)。
是否有推荐的最佳实践方法来做这种事情?
【问题讨论】:
标签: apache amazon-web-services docker https amazon-elastic-beanstalk