AWS:帮助在 Elastic Beanstalk 上配置端到端加密
AWS: Help Configuring End-to-End Encryption on Elastic Beanstalk
我正在尝试配置我的服务器,以便它终止 EC2 实例上的 https 连接。这一切都在 Elastic Beanstalk 上,我的环境是Node.js。
从客户端到负载均衡器的连接已经是 https,但我正在采取这一额外措施来满足 HIPAA 要求。
我觉得我按照 instructions on AWS docs 到了 T,但收到“502 Bad Gateway”错误。以下是我采取的步骤。如果您需要更多信息,请告诉我。
使用控制台在 Application Load Balancer 上添加了安全侦听器。 (遵循说明 here)
使用 OpenSSL 创建了一个自签名证书。对于“Common Name”,输入使用 Route 53 注册的合格域(类似于 server.example.com)。 (遵循说明 here)
通过创建配置文件将 nginx 配置为侦听端口 443 并使用证书终止 SSL 连接.ebextensions/https-instance.config
(遵循说明 here)
---从这里开始,可以找到配置文件的内容here----
使用配置文件.ebextensions/https-reencrypt-alb.config
将负载均衡器上的安全侦听器配置为转发到实例的端口 443
使用.ebextensions/https-lbsecuritygroup.config
配置负载均衡器的安全组
使用.ebextensions/https-backendsecurity.config
配置EC2实例的安全组
在此先感谢您的帮助。
编辑 1:
- 如果我发出 http 请求(即 http://server.example.com),服务器 returns 有效响应。
- 当前已设置安全组规则,以便负载均衡器和实例都允许所有端口上来自任何地方的所有流量。
- nginx 的 error.log 显示行数
2021/03/19 17:33:43 [error] 12568#0: *159 connect() failed (111: Connection refused) while connecting to upstream, client: 172.XX.XX.XX, server: , request: "GET / HTTP/1.1", upstream: "http://127.X.X.X:8081/", host: "172.XX.X.XXX"
(X 是我的密文)
This article 解决了我的问题。
我认为问题在于,与文档声称的相反,nginx 不能很好地使用自签名证书。
我使用 Let's Encrypt 而不是自签名 OpenSSL。
我注意到的另一件事是文档中的说明可能是在过时的位置创建 nginx 配置文件。上面引用的文章指定的位置对我的Linux2 EC2有效。
我正在尝试配置我的服务器,以便它终止 EC2 实例上的 https 连接。这一切都在 Elastic Beanstalk 上,我的环境是Node.js。 从客户端到负载均衡器的连接已经是 https,但我正在采取这一额外措施来满足 HIPAA 要求。
我觉得我按照 instructions on AWS docs 到了 T,但收到“502 Bad Gateway”错误。以下是我采取的步骤。如果您需要更多信息,请告诉我。
使用控制台在 Application Load Balancer 上添加了安全侦听器。 (遵循说明 here)
使用 OpenSSL 创建了一个自签名证书。对于“Common Name”,输入使用 Route 53 注册的合格域(类似于 server.example.com)。 (遵循说明 here)
通过创建配置文件将 nginx 配置为侦听端口 443 并使用证书终止 SSL 连接
.ebextensions/https-instance.config
(遵循说明 here)
---从这里开始,可以找到配置文件的内容here----
使用配置文件
将负载均衡器上的安全侦听器配置为转发到实例的端口 443.ebextensions/https-reencrypt-alb.config
使用
配置负载均衡器的安全组.ebextensions/https-lbsecuritygroup.config
使用
配置EC2实例的安全组.ebextensions/https-backendsecurity.config
在此先感谢您的帮助。
编辑 1:
- 如果我发出 http 请求(即 http://server.example.com),服务器 returns 有效响应。
- 当前已设置安全组规则,以便负载均衡器和实例都允许所有端口上来自任何地方的所有流量。
- nginx 的 error.log 显示行数
2021/03/19 17:33:43 [error] 12568#0: *159 connect() failed (111: Connection refused) while connecting to upstream, client: 172.XX.XX.XX, server: , request: "GET / HTTP/1.1", upstream: "http://127.X.X.X:8081/", host: "172.XX.X.XXX"
(X 是我的密文)
This article 解决了我的问题。
我认为问题在于,与文档声称的相反,nginx 不能很好地使用自签名证书。 我使用 Let's Encrypt 而不是自签名 OpenSSL。
我注意到的另一件事是文档中的说明可能是在过时的位置创建 nginx 配置文件。上面引用的文章指定的位置对我的Linux2 EC2有效。