我打算使用单个服务器 droplet 创建以下设置:
- 我想要实现的是仅使用通配符证书为我的 Apache2 Web 服务器设置一次 SSL / HTTPS,如上所示。
- 此外,我想为 Apache2 配置多个子域,通过 ProxyPass 将流量引导到各个端口,每个端口映射到不同的 Docker 容器,这次使用 HTTP 而不是 HTTPS(如上所示)。
- 此外,我还为 Apache2 设置了“重定向永久文件”,以确保例如http://x.domain.com总是重定向到https://x.domain.com
我认为这种配置的主要优点是我无需担心任何类型的 SSL 配置在 Docker 容器内/在 Docker 容器内运行的应用程序。此外,配置更多子域并运行其他容器也非常容易,所有这些都支持开箱即用的 SSL/HTTPS。
现在我的问题是:
- 上述设置是否合理,还有什么可以改进的吗?
- 是否存在任何安全问题?
- 目前,仍然可以在浏览器中直接输入例如“http://x.domain.com:6000”,这样 SSL/HTTPS 就会被绕过。从安全角度来看,这样做是否存在问题?如果存在,我该如何防止这种情况发生?
答案1
是的,这看起来是个不错的配置。除了问题 3 中的问题外,我没有发现任何明显的问题。
让连接通过的唯一问题http://*.domain.com:6xxx
是它是 HTTP,而不是 HTTPS。为了防止这种情况,您也可以重定向这些连接:
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%1.domain.com$1