Mar*_*rer 2 amazon-web-services
我有一个与自定义源 ELB(带有 EC2 实例)连接的 CloudFront Distribution。当执行请求curl https://xxx.cloudfront.net/atlassian-connect.json
一个HTTP/1.1 502 Bad Gateway
被返回的响应。
HTTP/1.1 502 Bad Gateway
Content-Type: text/html
Content-Length: 587
Connection: keep-alive
Server: CloudFront
Date: Sun, 29 May 2016 14:32:18 GMT
Age: 23
X-Cache: Error from cloudfront
Via: 1.1 fb7ff691963d3e3600808dccbe4422d2.cloudfront.net (CloudFront)
X-Amz-Cf-Id: HymCU2TweM0e6O4bDhluvDOj0gd2BoAqCnDtVyTOZBz2wOIYHN-Qhg==
Run Code Online (Sandbox Code Playgroud)
当直接向 ELB 发送请求(绕过 CloudFront 分配)时,我能够得到预期的响应:
curl -kv https://xxx.eu-central-1.elb.amazonaws.com/atlassian-connect.json
Run Code Online (Sandbox Code Playgroud)
在尝试调整一些 cloudfront 分发选项后,我无法让它工作。
小智 12
如果问题不在于证书(就像我的情况),则可能与未传递到源的标头有关。AllViewer
在 CloudFront 行为设置中设置Origin 请求策略选项后(参见图片),502 Bad Gateway 错误消失了。
此处进一步解释了源请求策略值:https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-management-origin-request-policies.html
您服务器上的 SSL 证书在此配置中不可用。
您使用 curl 绕过验证,但 CloudFront(足够明智)没有提供这种绕过机制。
您的证书必须匹配任的起源主机名或在Host:
如果你有,在原请求头Host:
白名单转发到原点头。
如果您的证书不包含与源域名或主机标头中的域名匹配的任何域名,CloudFront 会向查看器返回 HTTP 状态代码 502(错误网关)。
...而且,它必须是最新的、有效的、非自签名的,并具有正确构建的信任链:
如果源站返回过期的证书、无效的证书或自签名证书,或者源站返回的证书链顺序错误,CloudFront 将断开 TCP 连接,返回 HTTP 错误代码 502,并设置 X-从 cloudfront 缓存标头到错误。
引文来自http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/SecureConnections.html。
归档时间: |
|
查看次数: |
6911 次 |
最近记录: |