【问题标题】:AWS: Help Configuring End-to-End Encryption on Elastic BeanstalkAWS:帮助在 Elastic Beanstalk 上配置端到端加密
【发布时间】:2021-03-22 08:29:15
【问题描述】:

我正在尝试配置我的服务器,以便它终止 EC2 实例上的 https 连接。这一切都在 Elastic Beanstalk 上,我的环境是 Node.js。 从客户端到负载均衡器的连接已经是 https,但我正在采取这种额外措施来满足 HIPAA 要求。

我觉得我跟着instructions on AWS docs 到了 T,但收到“502 Bad Gateway”错误。以下是我采取的步骤。如果您需要更多信息,请告诉我。

  1. 使用控制台在 Application Load Balancer 上添加了安全侦听器。 (遵循指令here

  2. 使用 OpenSSL 制作自签名证书。对于“通用名称”,输入使用 Route 53 注册的限定域(类似于 server.example.com)。 (遵循指令here

  3. 将 nginx 配置为侦听端口 443 并通过创建配置文件 .ebextensions/https-instance.config 使用证书终止 SSL 连接(遵循指令 here

---从这里开始,可以找到配置文件的内容here----

  1. 使用配置文件.ebextensions/https-reencrypt-alb.config将负载均衡器上的安全监听器配置为转发到实例的443端口

  2. 使用.ebextensions/https-lbsecuritygroup.config配置负载均衡器的安全组

  3. 使用.ebextensions/https-backendsecurity.config配置EC2实例的安全组

提前感谢您的帮助。

编辑 1:

  • 如果我发出 http 请求(即http://server.example.com),服务器会返回有效响应。
  • 当前已设置安全组规则,以便负载均衡器和实例都允许所有端口上来自任何地方的所有流量。
  • 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 是我的编辑)

【问题讨论】:

  • 您应该能够ssh 进入EC2 服务器并运行curl --insecure https://localhost 以验证服务器是否正在运行。 --insecure 告诉 curl 跳过对您的自签名证书的验证。如果可行,请发布您的安全组配置。如果这不起作用,请查看您的服务器日志以找出 nginx 没有启动的原因。
  • 感谢您的步骤。我已经更新了我的原始帖子以包含我发现的内容。
  • 实际应用 nginx 代理的请求似乎没有运行。

标签: amazon-web-services amazon-ec2 openssl amazon-elastic-beanstalk aws-application-load-balancer


【解决方案1】:

This article 解决了我的问题。

我认为问题在于,与文档声称的相反,nginx 不能很好地使用自签名证书。 我使用 Let's Encrypt 而不是自签名 OpenSSL。

我注意到的另一件事是文档中的说明可能是在过时的位置创建 nginx 配置文件。上面引用的文章指定的位置对我的 Linux2 EC2 有效。

【讨论】:

    猜你喜欢
    • 2018-11-18
    • 2020-08-01
    • 2019-11-14
    • 2014-07-03
    • 2017-09-20
    • 2017-02-28
    • 2020-08-27
    • 2017-05-21
    • 2016-12-08
    相关资源
    最近更新 更多