amazon-web-services - 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 标头是否不够?
解决方案
所以终于想出了答案。
白名单主机将正确地将标头转发到源 (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 端口使用的协议。
确保还从云端设置您的源域设置以匹配参考版本。