gpt4 book ai didi

amazon-cloudfront - 基于所选请求 header 的缓存 - Cloudformation 的 CloudFront 行为?

转载 作者:行者123 更新时间:2023-12-04 18:57:36 25 4
gpt4 key购买 nike

我正在编写 Cloudformation 来部署 ELB 源 CloudFront 发行版。除了我在 AWS 文档中找不到的一个选项之外,我已经完成了它。我将所有流量重定向到 https,因此我需要将我的发行版上的行为设置为对“基于所选请求 header 的缓存”使用“全部”或“白名单”。这可以在 Cloudformation 中的任何地方指定吗?如果是这样怎么办?

默认值为 None,这是无效选项并返回错误:

要将 SSL 与 ELB 源一起使用,请转发所有 header 或将主机 header 列入白名单。如果您不想转发任何 header ,请将源协议(protocol)策略更改为仅 HTTP。

最佳答案

DefaultCacheBehaviorCacheBehaviors 的成员中,您需要一个类似于以下内容的 ForwardedValues:

{
"Cookies" : Cookies,
"Headers" : [ String, ... ],
"QueryString" : Boolean,
"QueryStringCacheKeys" : [ String, ... ]
}

Headers 是要转发的 header 的字符串数组,例如主机

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-forwardedvalues.html


尝试使用 ELB 作为源时出现的错误是新出现的(2018 年 1 月左右添加)。

以前,配置已被接受,但实际上无法与 HTTPS 配合使用,因为 CloudFront 要求源端提供有效的 SSL 证书。

“有效”意味着所有这些:

  • 必须由受信任的公共(public) CA 签名(因此不得自签名)
  • 不得过期
  • 必须匹配在 CloudFront 中配置的源域名由 CloudFront 发送到源的 Host header 。 (除非您将浏览器发送的 Host header 列入白名单,否则这两个值是相同的 - 传出请求的 Host header 将设置为原始域名。)

最后一个条件不可能以 AWS 颁发的 ELB 主机名作为源来满足,除非您转发 Host header 并在 ELB 上拥有与 Host header 匹配的证书由浏览器发送,因为您无法获取 .amazonaws.com 子域的 SSL 证书,因为那不是您的域。这也意味着您无法在浏览器中使用分配的 dzczcexample.cloudfront.net 主机名来测试 HTTPS,直至使用 ELB 主机名作为源域名的 ELB 源 - CloudFront 将抛出502 Bad Gateway 错误并提示无法连接到源。它实际上意味着它无法验证来源,因为 SSL 证书的主题与 CloudFront 尝试转发的请求不匹配。

关于amazon-cloudfront - 基于所选请求 header 的缓存 - Cloudformation 的 CloudFront 行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48598974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com