Amazon web services 将http://请求重定向到AWS API网关上的https://上(使用自定义域)

Amazon web services 将http://请求重定向到AWS API网关上的https://上(使用自定义域),amazon-web-services,aws-sdk,aws-api-gateway,amazon-route53,Amazon Web Services,Aws Sdk,Aws Api Gateway,Amazon Route53,我正在使用。当我尝试访问http://www.mydomain.com时,它工作正常,但当我尝试http://www.mydomain.com时,它无法连接 有没有办法通过API网关中的自定义域重定向http->https?如果没有,有没有办法让http://链接像https://链接一样工作?API网关不直接支持没有TLS的http,这可能是一种安全特性,也是出于一些实际考虑 对于一般的API,没有一种特别好的方法可以做到这一点,因为将POST请求从HTTP重定向到HTTPS实际上有点毫无意义

我正在使用。当我尝试访问http://www.mydomain.com时,它工作正常,但当我尝试http://www.mydomain.com时,它无法连接


有没有办法通过API网关中的自定义域重定向
http->https
?如果没有,有没有办法让http://链接像https://链接一样工作?

API网关不直接支持没有TLS的http,这可能是一种安全特性,也是出于一些实际考虑

对于一般的API,没有一种特别好的方法可以做到这一点,因为将POST请求从HTTP重定向到HTTPS实际上有点毫无意义——在生成重定向时,数据已经不安全地发送了,除非客户端在发送主体之前要求服务器检查请求头,使用
Expect:100继续

您可以创建CloudFront发行版,并将其配置为将
GET
HEAD
请求从HTTP重定向到HTTPS。。。但是,如果您向这样的发行版发送
POST
请求,CloudFront不会重定向——它只会抛出一个错误,因为(如上所述)这样的重定向弊大于利

然而。。。如果
GET
是您的应用程序,那么它非常简单:首先,使用系统分配的主机名(而不是自定义域)部署具有区域(非边缘优化的)API端点的API


然后,创建一个使用此区域API端点作为其源服务器的CloudFront发行版,并配置CloudFront发行版的行为以将HTTP重定向到HTTPS。将您的自定义域名与CloudFront发行版关联,而不是直接与API网关关联。

lambda代码使用什么语言?@KushVyas它使用的是nodejs 6。。不知道这有什么关系?你能解释一下如何将自定义域与cloudfront关联吗?@Tyrsius see Hi@Michael sqlbot,我知道这是一个非常古老的答案,但也许你可以帮助我。我按照你的解释把一切都安排好了。拥有大部分功能,但必须从纯API网关切换到CloudFront以实现http->https重定向。。。如果我想禁用默认API端点并仅通过CloudFront的自定义域提供服务,我可以这样做吗?只要禁用它就会导致404。如果我禁用它,我必须使用什么作为源域名。或者在使用CloudFront时不能这样做吗?