Amazon web services 具有主机头转发的菊花链CloudFront

Amazon web services 具有主机头转发的菊花链CloudFront,amazon-web-services,amazon-cloudfront,Amazon Web Services,Amazon Cloudfront,我正在尝试将CloudFront用作一个简单的反向代理,以便为我正在构建的web应用程序提供自定义域。我拥有以下域: example.com(我在ALB后面的应用程序) reseller.com(指向来源的CloudFront发行版:example.com) customer.com(CloudFront发行版指向来源:resoller.com) 此方案运行良好,我将reseller.com视为我的应用程序上的主机: 分销商网站(转发主机标题)->example.com 此方案工作正常,但并

我正在尝试将CloudFront用作一个简单的反向代理,以便为我正在构建的web应用程序提供自定义域。我拥有以下域:

  • example.com(我在ALB后面的应用程序)
  • reseller.com(指向来源的CloudFront发行版:example.com)
  • customer.com(CloudFront发行版指向来源:resoller.com)
此方案运行良好,我将reseller.com视为我的应用程序上的主机:

分销商网站(转发主机标题)->example.com

此方案工作正常,但并不理想,因为我在我的应用程序中将reseller.com视为主机,而不是customer.com,因为主机标题未转发:

customer.com(非转发主机头)->resoller.com(转发主机头)->example.com

此场景导致CloudFront抛出403:

customer.com(转发主机头)->resoller.com(转发主机头)->example.com


为什么将主机头从一个CloudFront转发到另一个CloudFront发行版会抛出403?

TL;CloudFront医生通常需要SNI才能工作。转发
Host
头导致CF无法协商SSL握手。@JellyScc SSL失败将导致502travis获得403,我怀疑这是因为循环。您知道customer.com和reseller.com是否都指向CloudFront IP地址吗?这将导致循环,因为customer.com将连接到reseller.com(主机头为customer.com),如果reseller.com再次指向CloudFront IP,CloudFront将匹配主机头上的分发或基于客户端hello中的SNI。转售商解析为cloudfront IP且主机头为customer.com时,将再次将其与同一发行版进行匹配,3次通过头后,请求将被403删除。为什么不简单地添加1个cloudfront发行版,其中customer.com和reseller.com都添加到其中,origin作为example.com和forward host header.TL;CloudFront医生通常需要SNI才能工作。转发
Host
头导致CF无法协商SSL握手。@JellyScc SSL失败将导致502travis获得403,我怀疑这是因为循环。您知道customer.com和reseller.com是否都指向CloudFront IP地址吗?这将导致循环,因为customer.com将连接到reseller.com(主机头为customer.com),如果reseller.com再次指向CloudFront IP,CloudFront将匹配主机头上的分发或基于客户端hello中的SNI。转售商解析为cloudfront IP且主机头为customer.com时,将再次将其与同一发行版进行匹配,3次通过头后,请求将被403删除。为什么不简单地添加1个cloudfront发行版,其中既有customer.com,又有转售商.com,其中origin作为example.com和forward host头。