AWS负载均衡器后面的ASP.NET Core 2.1 HTTPS重定向?
Posted
技术标签:
【中文标题】AWS负载均衡器后面的ASP.NET Core 2.1 HTTPS重定向?【英文标题】:ASP.NET Core 2.1 HTTPS Redirection behind AWS Load Balancer? 【发布时间】:2018-12-04 12:05:04 【问题描述】:我已采取的步骤:
-
在 Elastic Beanstalk 中的负载均衡器上启用 80 HTTP -> 80 HTTP 和 443 HTTPS -> 80 HTTP
将我的 Route53 托管区域的 www 和 apex A 记录别名到我的负载均衡器
设置 SSL 证书
使用带有 HTTPS 重定向的默认 ASP.NET React 模板
在 .csproj 中添加了
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
,因为 EB 还没有使用 2.1。
使用 Visual Studio AWS 工具部署
什么有效:https://www.example.com有效https://example.com有效
什么不起作用:http://example.com 不会重定向到 https://example.comhttp://www.example.com 不会重定向到 https://www.example.com
我知道过去您必须编写自定义扩展方法才能使其与 AWS LB 一起使用。有人有使用标准模板的工作示例吗?
【问题讨论】:
您尝试过 x-forwarded 标头吗? Here更多信息 是的,对我不起作用。肯定有人用 EB 和 AWS 负载均衡器和 Core 2.1 做到了这一点 您能提供更多信息吗?...也许,您可以在不支持 https 的情况下配置 asp.net 核心项目,并让反向代理(IIS、nginx 等)进行重定向工作。 This可以帮到你 你搞定了吗?寻找解决方案 【参考方案1】:也许这个解决方案对您的环境来说有点矫枉过正。但你可以set up a Cloudfront distribution。您应该将您的 Elastic beanstalk url 作为源并将您的 https://example.com
放在 CNAME 下,然后您可以决定是否需要灵活的 SSL,您可以将与源的通信指定为仅 HTTP,或者如果您想要端到端加密,您可以仅指定 HTTPS (我认为这将是您特定情况下的方法,因为您已将弹性负载均衡器配置为将所有请求从端口 443 转发到端口 80)。然后在行为下,您可以选择将 http 重定向到 https 的选项,每个到 http://example.com
的请求都会被 Cloudfront 自动重定向到 https://example.com
希望对你有帮助
【讨论】:
以上是关于AWS负载均衡器后面的ASP.NET Core 2.1 HTTPS重定向?的主要内容,如果未能解决你的问题,请参考以下文章
无法为在 Elastic Beanstalk AWS 上运行 ASP.NET 的网站强制使用 HTTPS(使用经典负载均衡器)
ASP.NET Core 搭载 Envoy 实现微服务的负载均衡
ASP.NET Core 搭载 Envoy 实现微服务的负载均衡
2021-06-24 .NET高级班 66-ASP.NET Core EFCore数据库(数据库增删改查封装集成[读写分离,负载均衡])