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的主要内容,如果未能解决你的问题,请参考以下文章
Spring Cloud Gateway中如何将HTTP重定向到HTTPS
在codeigniter中将站点url http重定向到https
Cloudformation 中 Elastic Beanstalk 中的应用程序负载均衡器的 HTTP 重定向到 HTTPS