VPC SSL/HTTPS 环境
VPC SSL/HTTPS environment
我使用 AWS Elastic Beanstalk 设置了以下 VPC:
- Web 应用程序 Public 我的域(通过 cloudflare 代理)指向的负载均衡器和私有子网中的 EC2 实例。
- 私有内部 API 负载均衡器,通过安全组向上述 EC2 实例授予入站访问权限
- 私有子网中的数据库,可由 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(内部 API 负载均衡器的 DNS)时。
问题
这是获取端到端 HTTPS 的正确方法吗?;和
如何解决上述错误? (由 Node JS 返回)
谢谢
最后我得出了这个结论:当我的实例位于私有子网中时,我不需要端到端 HTTPS,因为:-
一旦 HTTPS 在负载均衡器处终止,内部请求将通过 HTTP 而不是通过 public 互联网。 AWS 网络外的任何人都看不到他们的请求。
我传输的数据并不过分敏感(只是电子邮件和用户首选项)所以没有 Compliance/Regulatory 理由在专用网络中强制执行端到端 HTTPS。
由于必须进行 SSL 握手,因此使用 HTTPS 时性能会受到轻微影响,这是一种开销。
我通过安全组获得了额外的安全保护,只允许来自负载均衡器的内部流量。
有许多建议可以指导您将应用程序配置为在通过 HTTPS 连接时忽略证书...但这违背了 HTTPS(安全加密连接)的全部要点。您也可以只使用 HTTP 而不是这样做。
经过与 AWS 的大量研究和讨论后,我认为在内部网络上使用 HTTP 对于 99% 的用例来说已经足够安全,并且对于很多设置来说是相当标准的,所以除非你真的需要端到端为您的用例加密,我建议改为这样做。
希望对您有所帮助。
我使用 AWS Elastic Beanstalk 设置了以下 VPC:
- Web 应用程序 Public 我的域(通过 cloudflare 代理)指向的负载均衡器和私有子网中的 EC2 实例。
- 私有内部 API 负载均衡器,通过安全组向上述 EC2 实例授予入站访问权限
- 私有子网中的数据库,可由 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(内部 API 负载均衡器的 DNS)时。
问题
这是获取端到端 HTTPS 的正确方法吗?;和
如何解决上述错误? (由 Node JS 返回)
谢谢
最后我得出了这个结论:当我的实例位于私有子网中时,我不需要端到端 HTTPS,因为:-
一旦 HTTPS 在负载均衡器处终止,内部请求将通过 HTTP 而不是通过 public 互联网。 AWS 网络外的任何人都看不到他们的请求。
我传输的数据并不过分敏感(只是电子邮件和用户首选项)所以没有 Compliance/Regulatory 理由在专用网络中强制执行端到端 HTTPS。
由于必须进行 SSL 握手,因此使用 HTTPS 时性能会受到轻微影响,这是一种开销。
我通过安全组获得了额外的安全保护,只允许来自负载均衡器的内部流量。
有许多建议可以指导您将应用程序配置为在通过 HTTPS 连接时忽略证书...但这违背了 HTTPS(安全加密连接)的全部要点。您也可以只使用 HTTP 而不是这样做。
经过与 AWS 的大量研究和讨论后,我认为在内部网络上使用 HTTP 对于 99% 的用例来说已经足够安全,并且对于很多设置来说是相当标准的,所以除非你真的需要端到端为您的用例加密,我建议改为这样做。
希望对您有所帮助。