首页 > 解决方案 > CloudFront - 如何在 DNS 不同时将带有 HTTPS 的 ELB 作为自定义源

问题描述

我有一个带有自定义域的 Cloudfront 发行版,比如说www.x.com,它在发行版中的备用域名中列出。

我希望它转发到的来源是一个 ELB,带有一个 HTTPS 侦听器,www.x.com上面有证书。

源域是 ELB dns 名称 (xxxx.ap-east-1.elb.amazonaws.com) - 由于某些其他原因,我不能在那里放置另一个子域。

我遵循的建议是,在行为页面上,我们可以转发标头(主机)标头,以便它能够对证书进行身份验证。但是,我一直遇到 Cloudfront 说无法联系来源的问题。

除了使用子域指向 ELB 之外,有没有办法解决这个问题?转发 Host / Origin 标头是否不够?

标签: amazon-web-servicescertificateamazon-cloudfrontamazon-elb

解决方案


所以终于想出了答案。

白名单主机将正确地将标头转发到源 (ELB)。但是,默认情况下 Beanstalk 创建的 elbELBSample-ELBDefaultNegotiationPolicy显然使用的是 HTTPS 策略。这样,它将使用 TlSv1 协议,并且当您的原始设置使用 TLSv1.1 或更高版本时它将不起作用。

要正确设置,请确保从 elasticbeanstalk 设置正确的命名空间设置

    {
      namespace = "aws:elb:policies:sslpolicy"
      name      = "SSLReferencePolicy"
      val       = "ELBSecurityPolicy-TLS-1-2-2017-01"
    },
    {
      namespace = "aws:elb:policies:sslpolicy"
      name      = "LoadBalancerPorts"
      val       = "443"
    }

通过这种方式,您可以配置您希望 HTTPS 端口使用的协议。

确保还从云端设置您的源域设置以匹配参考版本。


推荐阅读