如果 nginx 位于只能使用 https 访问的负载均衡器上的 ec2 实例中,我是否需要在 nginx 本身上配置证书?

Do I need to configure certs on nginx itself if nginx is inside ec2 instance on loadbalancer which can only be accessed using https?

我在负载均衡器上应用了证书,并且 https 工作正常,但我想知道我是否需要将证书添加到 nginx 本身,这似乎有点过分但我不确定。

不,您不必这样做。原因是您的负载均衡器 (LB) 将 termiante https 连接,使用您在其上部署的 SSL 证书对其进行解密,然后将 HTTP 连接转发到您的 ec2 实例。

因此,使用 HTTPS 的 LB 的典型连接具有以下形式:

client ---(HTTPS)---->LB---(HTTP)--->EC2 instance

此配置适用于大多数用例,因为 HTTP 流量发生在 AWS 私有网络,而不是通过互联网。

不,使用负载均衡器的好处之一是您可以从 public 互联网隐藏您的 EC2,使其不那么开放但更安全。

因此,通常做法是在 EC2 和负载均衡器之间使用 HTTP,因为它们位于同一 AWS 区域(安全且受信任的内部环境)。

这样做还可以提高性能,因为 https 网络开销在负载均衡器中只执行一次,而不是两次。您的 EC2 会将 CPU 资源集中在 运行 应用程序逻辑上。

负载均衡器也具有高可用性,可以配置为与 CloudFront 和 WAF 一起使用以实现安全和反 DDoS 控制。