是否有必要在 AWS 上的 ACM 下为 Nginx 创建自签名证书?
Is it necessary to create a self signed cert for Nginx under ACM on AWS?
我在私有子网中的 EC2 上使用 Nginx 作为反向代理。在 public 子网中,我创建了一个 ALB 并为域 proxy.mydomain.test
创建了一个 ACM。
LB的目标群正在使用HTTPS协议的443端口。 LB的listener也是使用443端口和HTTPS协议,甚至ELBSecurityPolicy-2016-08
ssl policy和ACM的certificate arn。它的动作是使用 forward
.
LB的监听规则动作也是forward
,条件是host_header
。它的值为完整域proxy.mydomain.test
.
Nginx 代理服务器的职责是指向内部子网中服务于另一个服务的 ELB 端点。所以它可能应该使用 proxy_pass, then I think the /var/www/html 是没有必要的。
那么关于EC2中的Nginx,是否需要创建一个self signed cert?
而且,在Nginx的server listen config中,用80还是443来抓inbound?
这取决于您的架构。
- 如果您的
NGINX proxy
是 public 端点,它必须有 SSL
证书.
- 如果您的
Load Balancer
是 public 端点,它必须
有 SSL 证书。
在这种情况下,您的Load Balancer
是内部配置,它只允许内部VPC访问所以HTTP流量(通过端口80)就够了。但为了获得最佳实践,您可以增强任何层的安全性并使它们成为 HTTPS,我们鼓励这样做。
出于安全原因,对于 public 端点,我们通常配置 将流量从端口 80 重定向到端口 443。
参考:https://linuxize.com/post/redirect-http-to-https-in-nginx/
通常您不需要 SSL/HTTPS 在 ALB 和实例之间,或者当您在 VPC 内路由流量时。所以您的流量将是:
client ---(HTTPS)--->ALB----(HTTP)--->NGINX---(HTTP)--->ALB
通常您只加密从 Internet 到 ALB 的流量。
我在私有子网中的 EC2 上使用 Nginx 作为反向代理。在 public 子网中,我创建了一个 ALB 并为域 proxy.mydomain.test
创建了一个 ACM。
LB的目标群正在使用HTTPS协议的443端口。 LB的listener也是使用443端口和HTTPS协议,甚至ELBSecurityPolicy-2016-08
ssl policy和ACM的certificate arn。它的动作是使用 forward
.
LB的监听规则动作也是forward
,条件是host_header
。它的值为完整域proxy.mydomain.test
.
Nginx 代理服务器的职责是指向内部子网中服务于另一个服务的 ELB 端点。所以它可能应该使用 proxy_pass, then I think the /var/www/html 是没有必要的。
那么关于EC2中的Nginx,是否需要创建一个self signed cert?
而且,在Nginx的server listen config中,用80还是443来抓inbound?
这取决于您的架构。
- 如果您的
NGINX proxy
是 public 端点,它必须有 SSL 证书. - 如果您的
Load Balancer
是 public 端点,它必须 有 SSL 证书。
在这种情况下,您的Load Balancer
是内部配置,它只允许内部VPC访问所以HTTP流量(通过端口80)就够了。但为了获得最佳实践,您可以增强任何层的安全性并使它们成为 HTTPS,我们鼓励这样做。
出于安全原因,对于 public 端点,我们通常配置 将流量从端口 80 重定向到端口 443。
参考:https://linuxize.com/post/redirect-http-to-https-in-nginx/
通常您不需要 SSL/HTTPS 在 ALB 和实例之间,或者当您在 VPC 内路由流量时。所以您的流量将是:
client ---(HTTPS)--->ALB----(HTTP)--->NGINX---(HTTP)--->ALB
通常您只加密从 Internet 到 ALB 的流量。