【问题标题】:VPC SSL/HTTPS environmentVPC SSL/HTTPS 环境
【发布时间】:2020-10-06 11:54:28
【问题描述】:

我使用 AWS Elastic Beanstalk 设置了以下 VPC:

  1. 我的域(通过 cloudflare 代理)指向的 Web 应用公共负载均衡器在私有子网中带有 EC2 实例。
  2. 私有内部 API 负载均衡器,通过安全组授予上述 EC2 实例的入站访问权限
  3. 私有子网中的数据库,可由 API 负载均衡器后面的 EC2 实例访问。

我想启用端到端 HTTPS,AWS 在这里有很好的文档 (https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-endtoend.html)。

尽管使用了免费的 Cloudflare 域证书,但我已经遵循了这一点。这似乎没问题,直到我收到以下错误:'SELF_SIGNED_CERT_IN_CHAIN' 当我的 Web 应用程序尝试通过 https://internal-aweseb-dns.amazonaws.com(内部 API 负载均衡器的 DNS)连接到内部 API 时。

问题

  1. 这是获取端到端 HTTPS 的正确方法吗?和

  2. 如何解决上述错误? (由 Node JS 返回)

谢谢

【问题讨论】:

  • 您在哪里部署了自签名 SSL 证书?
  • @Marcin 证书是我的域证书(非自签名),它按照 AWS 文档的指示部署到负载均衡器及其后面的 EC2 实例上。可能更多的是 Node JS 问题无法在内部识别证书。

标签: amazon-web-services ssl https amazon-vpc


【解决方案1】:

最后我得出了这个结论:当我的实例在私有子网中时,我不需要端到端 HTTPS,因为:-

  1. 在负载均衡器终止 HTTPS 后,内部请求将通过 HTTP 而不是通过公共 Internet。 AWS 网络之外的任何人都看不到他们的请求。

  2. 我传输的数据并不过分敏感(只是电子邮件和用户偏好),因此没有合规/监管理由在专用网络中强制执行端到端 HTTPS。

  3. 使用 HTTPS 作为必须进行的 SSL 握手时,性能会受到轻微影响,这是一种开销。

  4. 我通过安全组获得了额外的安全性,只允许来自负载均衡器的内部流量。

有许多建议可以指导您将应用程序配置为在通过 HTTPS 连接时忽略证书……但这违背了 HTTPS(安全加密连接)的全部意义。您也可以只使用 HTTP 而不是这样做。

在与 AWS 进行大量研究和讨论之后,我认为在内部网络上使用 HTTP 对于 99% 的用例来说足够安全,并且对于很多设置来说是相当标准的,因此除非您确实需要端到端加密您的用例,我建议您改为这样做。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-27
    • 2020-11-09
    • 2018-07-09
    • 2020-11-29
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    相关资源
    最近更新 更多