![如何在没有负载均衡器的情况下设置 Cloudflare、自定义域、SSL 和 Elastic Beanstalk](https://linux22.com/image/740599/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%B2%A1%E6%9C%89%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E8%AE%BE%E7%BD%AE%20Cloudflare%E3%80%81%E8%87%AA%E5%AE%9A%E4%B9%89%E5%9F%9F%E3%80%81SSL%20%E5%92%8C%20Elastic%20Beanstalk.png)
背景研究
我目前正在完善一个项目的基础设施,我意识到在安装 SSL 证书时遇到了一个小问题。我在网上进行了大量研究,但许多文章似乎相互矛盾,因此,我觉得最好在这里提出一个问题...
我的设置
我当前的设置如下(仅相关部分):
- 由 Route 53 管理的自定义域 DNS(笔记- 我打算将其迁移到 Cloudflare)
- 该应用程序使用 Elastic Beanstalk 服务托管(没有负载均衡器)
www.example.com
转发至example.com
- 这是相关的,因为 DNS 管理
我的问题
我考虑过发布几个单独的问题,但由于每个问题都相互关联,我认为最好将它们合并为一个。以下是我想要实现的目标:
- 重写/重定向
{subdomain}.elasticbeanstalk.com
到自定义域(由于各种原因我想隐藏 Elastic Beanstalk 域) - 从 Cloudflare 管理我的 DNS(我犹豫是否指向我的弹性 IP,因为如果重建环境,这将会改变)
- 确保所有请求均在 HTTPS 下提供(Cloudflare 将为自定义域处理此问题)
我的问题(以及建议的解决方案)
- 是否可以将 Elastic Beanstalk 域重写/重定向到我的自定义域?我认为这无法完成,因为 Web 服务器 (Apache) 将需要 EB 域...
- 如果1.无法完成,有没有办法在没有负载均衡器的情况下在 EB 实例上启用 SSL,或者阻止外界访问它(同时仍然允许我的自定义域重写它,我对此表示怀疑......)。简而言之,如果 EB 实例是公开可访问的,它必须强制 SSL。我担心实现此目的的唯一方法是向我的 .ebextensions 添加一些 apache 配置...
- 我可以依靠 EB 关联的弹性 IP 将我的 A 记录从 Cloudflare 管理的 DNS 转发到吗?
附加信息
Cloudflare
多年来,我一直使用 Cloudflare 来进一步优化我所建网站的内容。虽然许多优化工作都可以由我自己在服务器上完成(我确实这样做了),但 Cloudflare 提供了大量附加功能,使其作为访问者和服务器之间的“中间人”发挥了巨大作用。为了获得 Cloudflare 的好处,必须使用 Cloudflare 管理其 DNS,因此我放弃了 Route 53。
弹性 IP
我认为我的弹性 IP 可能会改变的原因很简单,因为 Elastic Beanstalk 会在需要重建“环境”时删除并重建所有服务。虽然我知道我极不可能重建我的环境,但这意味着还有另一件事需要考虑,以便进行持续维护