【问题标题】:ASP.NET Core 2.1 HTTPS Redirection behind AWS Load Balancer?AWS负载均衡器后面的ASP.NET Core 2.1 HTTPS重定向?
【发布时间】:2018-12-04 12:05:04
【问题描述】:

我已采取的步骤:

  1. 在 Elastic Beanstalk 中的负载均衡器上启用 80 HTTP -> 80 HTTP 和 443 HTTPS -> 80 HTTP
  2. 将我的 Route53 托管区域的 www 和 apex A 记录别名到我的负载均衡器
  3. 设置 SSL 证书
  4. 使用带有 HTTPS 重定向的默认 ASP.NET React 模板
  5. 在 .csproj 中添加了 <RuntimeIdentifier>win-x64</RuntimeIdentifier>,因为 EB 还没有使用 2.1。
  6. 使用 Visual Studio AWS 工具部署

什么有效:
https://www.example.com有效
https://example.com有效

什么不起作用:
http://example.com 不会重定向到 https://example.com
http://www.example.com 不会重定向到 https://www.example.com

我知道过去您必须编写自定义扩展方法才能使其与 AWS LB 一起使用。有人有使用标准模板的工作示例吗?

【问题讨论】:

  • 您尝试过 x-forwarded 标头吗? Here更多信息
  • 是的,对我不起作用。肯定有人用 EB 和 AWS 负载均衡器和 Core 2.1 做到了这一点
  • 您能提供更多信息吗?...也许,您可以在不支持 https 的情况下配置 asp.net 核心项目,并让反向代理(IIS、nginx 等)进行重定向工作。 This可以帮到你
  • 你搞定了吗?寻找解决方案

标签: amazon-web-services asp.net-core amazon-elastic-beanstalk


【解决方案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

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 2017-07-07
    • 1970-01-01
    • 2017-03-10
    • 1970-01-01
    • 2018-02-06
    • 2012-03-24
    • 2010-11-10
    • 2015-03-18
    相关资源
    最近更新 更多