API 网关将 http 重定向到 https

Posted

技术标签:

【中文标题】API 网关将 http 重定向到 https【英文标题】:API Gateway Redirect http to https 【发布时间】:2021-04-10 11:59:05 【问题描述】:

我们正在使用带有自定义域的 AWS API Gateway。当我们尝试 https: 时,它工作正常。但是我们尝试http:

我们 CloudFront 分发,具有配置: 源域名: 最小来源 SSL 协议:TLSv1.2 源协议策略:HTTPS 查看器协议策略:将 HTTP 重定向到 HTTPS 允许的 HTTP 方法:GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE

这样,它将所有 GET 请求从 HTTP 重定向到 HTTPS。

但是如果我们向 https:// 发送 POST 请求,cloudfront 不会重定向,只会抛出错误。

我们需要一种方法将 http: 请求重定向到 https: 用于 API 网关

【问题讨论】:

【参考方案1】:

这篇文章 redirect-http-requests-to-https-on-aws-api-gateway-using-custom-domains 中解释了 cloudfront 的这种行为

引用帖子

一般来说,对于 API 来说并没有特别好的方法来执行此操作,因为将 POST 请求从 HTTP 重定向到 HTTPS 实际上有点毫无意义——在生成重定向时,数据已经不安全地发送了,除非客户端在发送正文之前要求服务器检查请求标头,Expect: 100-continue。

您可以创建 CloudFront 分配,并将其配置为将 GET 和 HEAD 请求从 HTTP 重定向到 HTTPS...但是如果您向此类分配发送 POST 请求,CloudFront 不会重定向 - 它只会引发错误,因为(如前所述)这种重定向弊大于利。

【讨论】:

以上是关于API 网关将 http 重定向到 https的主要内容,如果未能解决你的问题,请参考以下文章

Linux 第三天 重定负管道符环境变量

Spring Cloud Gateway中如何将HTTP重定向到HTTPS

在codeigniter中将站点url http重定向到https

Cloudformation 中 Elastic Beanstalk 中的应用程序负载均衡器的 HTTP 重定向到 HTTPS

为啥从亚马逊弹性负载均衡器后面发送重定向时收到 502 错误网关?

重定向是 API 网关的有效策略吗?