EC2 在 CloudFront 后面使用 HTTPS 运行 NGINX?
Posted
技术标签:
【中文标题】EC2 在 CloudFront 后面使用 HTTPS 运行 NGINX?【英文标题】:EC2 running NGINX behind CloudFront with HTTPS? 【发布时间】:2021-02-19 16:53:05 【问题描述】:我已经为使用 Route53 域的 S3 存储桶配置了 CloudFront 分配,并使用公共证书启用了 HTTPS。
我想将此 CloudFront 分配与另一个源(这是一个运行 nginx 作为同一实例上应用程序的反向代理的 EC2 实例)一起使用,但我还需要启用 HTTPS。
我使用 NGINX 在 EC2 上启用 HTTPS 的常规方法是设置 nginx 配置并将我的域“A 记录”指向实例,然后使用 Let's Encrypt 请求证书。但是在 CloudFront 后面我应该怎么做呢?我不会使用 Let's Encrypt(仅使用它不一定很重要),我想像使用 S3 一样使用 AWS 公共证书。
我是否可以将 NGINX 配置为侦听端口 80 并将此 EC2 实例添加为 CloudFront 分配的源,然后启用 HTTPS 并在那里选择我的公共证书,或者应该如何完成才能正常工作?
这次我不打算使用负载均衡器,我希望在 EC2 和 CloudFront 之间建立直接连接。但我也想知道在使用负载均衡器时如何设置它(未来)。
【问题讨论】:
【参考方案1】:我是否可以将 NGINX 配置为侦听端口 80 并将此 EC2 实例添加为 CloudFront 分配的源,然后启用 HTTPS 并在那里选择我的公共证书,或者应该如何完成才能正常工作?
是的,您可以这样做,但所有流量模式都是:
Clinet---(HTTPS)--->CF---(HTTP)--->Instance
这意味着您的一半连接(CF->实例)将使用 HTTP,这可能不是我们所希望的。
如果您想在每条路径上都有 HTTP,您仍然需要在实例上拥有 public 有效的 SSL 证书。 CF 不适用于自签名证书。
【讨论】:
以上是关于EC2 在 CloudFront 后面使用 HTTPS 运行 NGINX?的主要内容,如果未能解决你的问题,请参考以下文章
EC2 上用于 Wordpress 的 Cloudfront
减少 CloudFront 后面托管的公共 API 的响应延迟