AWS API网关自定义子域CNAME错误请求

时间:2018-03-11 13:06:56

标签: amazon-web-services aws-api-gateway

尝试使用边缘优化自定义域设置API网关API(到Lambda服务)。 设置自定义域: custom domain setup on API gateway

对原始AWS API URL(https://****.execute-api.****.amazonaws.com/prod)的调用非常有效。

但是,对****.cloudfront.net网址或自定义域(api.****.com)的调用会返回Bad Request

$ curl https://****.cloudfront.net/**** -H "Host:api.****.com"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>
</HEAD><BODY>
<H1>ERROR</H1>
<H2>The request could not be satisfied.</H2>
<HR noshade size="1px">
Bad request.
<BR clear="all">
<HR noshade size="1px">
<PRE>
Generated by cloudfront (CloudFront)
Request ID: ***==
</PRE>
<ADDRESS>
</ADDRESS>
</BODY></HTML>

(欺骗该请求的Host:标题)

在我的域名DNS设置中,我设置了一个指向云端网址的CNAME记录,似乎工作正常。

(在自定义域名上我也遇到了SSL问题,我无法通过,但我想先解决此问题......)

1 个答案:

答案 0 :(得分:0)

在“缓存行为”设置中将主机标头列入白名单以进行转发。这使Cloudfront将其传递给您的自定义源。

您可以在此处获取有关Cloudfront缓存标头行为的更多信息: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html