AWS Cloudfront 级别的 SSL 卸载

SSL offloading on AWS Cloudfront level

我们使用以下 AWS 基础设施:

Route53-> CloundFront -> Elasticbeanstalk(+LoadBalancer=ELB) -> EC2 实例

现在我们在 CloudFront 级别设置了 ssl 证书,在 ELB 级别设置了相同的证书,从而为我们提供了 CF 和 ELB 之间的端到端加密。 AWS CF 和来源之间的 End2End 被描述为最佳实践 here

这指的是 picture 上的完全 SSL(严格)(这是针对 CloudFlare 堆栈的,但它是为了更好地说明,所以没关系)。我们希望在 AWS CF 级别卸载 SSL,以避免从 CF 到 ELB 的往返移动到灵活的 SSL,如图所示。

在 CF 级别卸载 SSL 是个好主意吗?在 CF 级别之后是否会有任何值得放弃端到端加密的性能改进?

我们能否以某种方式限制 ELB 仅接受来自某些 AWS CF 的连接?

此外还有一些关于 ELB SSL 的性能问题performance(似乎被证明很擅长,但我仍然有顾虑)。一般来说,如果 AWS CF 在 SSL 解密工作方面比 ELB 表现更好,这也很有趣。

根据您的应用程序的性质和合规性要求,在 CF 或不在 CF 卸载 SSL。

通常情况下,如果所有实体都通过 CF 访问应用程序(例如,没有从某些客户端到后端 VPC 的 VPN 连接),在 CF 处卸载就足够了。两者都使用 SSL 的性能差异并不显着。

只允许从 CF 到 ELB 的入站,目前没有可用的直接方法。一种可能的方法是使用 Lambda 函数更新 ELB 的安全组,从提供的 AWS JSON url.

获取 CF IP 范围

此外,与 ELB 相比,CF 的 SSL 卸载速度更快,因为有许多服务器在边缘位置运行并接受您的连接,而 ELB 为每个可用区(通常为 2 或 3 个)提供服务器。