SSL在负载均衡器终止时HTTPS提示

时间:2018-08-28 17:30:09

标签: asp.net-core https

我需要我的ASP.NET Core应用程序在返回https时返回CreatedAtActionResult的URL或使用UriHelper.GetDisplayUrl(Request)从我的API控制器获取当前的请求URL。我不想让我的服务处理https流量,因此不希望使用https重定向。理想情况下,任何生成url / uri的进程都应该能够将架构覆盖为https://

背景

我有一个服务在AWS Fargate上的Docker中运行,该服务在负载平衡器后面,该负载终止SSL通信并将请求作为HTTP转发到我的Asp.Net Core API。该API具有返回CreatedAtActionResult的动作,该Location形成了http://标头响应中提供的网址。不幸的是,这些网址是https://而不是https://,因为我的服务不知道它应该返回app.Use(async (context, next) => { // Rewrite the inbound Request when running remotely (where this key isn't set) if (Configuration["RunningEnvironment"] == null) { context.Request.IsHttps = true; context.Request.Scheme = "https"; } await next.Invoke(); });

1 个答案:

答案 0 :(得分:0)

我能够通过编写一个使用配置值的自定义中间件来解决此问题,该中间件使用配置值来标识我正在运行的环境,并有选择地更改传入的请求。希望这对下一个遇到这个问题的人有所帮助!

{{1}}