IIS 和 .NET 5 ASP.NET MVC 5 应用程序、HttpsRedirect 在 IIS 服务器之外无法工作

IIS and .NET 5 ASP.NET MVC 5 App, HttpsRedirect not working outside IIS Server

我有一个 ASP.NET Core 5 MVC 应用程序,运行 在 IIS 10 服务器上运行良好。

我被要求启用 HTTPS 并在端口 6443 上强制执行它。我已获得证书并在 IIS 上进行了配置。

在服务器本地进入 Chrome 并进入 http://localhost 时,您会正确地重定向到 https://localhost:6443

绑定已配置:

证书没问题,本地有效。

当我从网络中的另一个位置访问服务器的 ip 地址时,如果我以 https 访问它,它可以工作。

如果我访问 http,我得到这个 chrome 错误:

ERR_CONNECTION_REFUSED, check connection or proxy.

这没有任何意义,在启用 https 之前,它在 http:80 上工作正常,并且在本地,重定向有效。

代码是这样的 (Startup.cs):

public void Configure(IApplicationBuilder app)
{
     if (appOptions.HttpsRedirectionEnabled)
     {
         app.UseHttpsRedirection();
     }

     // The default HSTS value is 30 days. You may want to change 
     // this for production scenarios, see https://aka.ms/aspnetcore-hsts.
     app.UseHsts();
}

public void ConfigureServices(IServiceCollection services)
{
    services.AddHttpsRedirection(options =>
                {
                    options.RedirectStatusCode = StatusCodes.Status301MovedPermanently;
                    options.HttpsPort = 6443;
                });
}

此外,访问 https://serverip 似乎也不起作用,有点像在 443 而不是 6443 上重定向。所以我只在本地工作。

我不想安装任何 url 重写的东西,这必须正常工作。

我在 IIS 或其他任何东西上缺少什么配置?

编辑:被要求添加来自 chrome 开发工具的跟踪,这里是:

更详细的跟踪

Chrome hsts 部分:

但是查询这个发现东西

如评论中所述,浏览器已缓存 an HSTS response for the server, telling it to always request the secure version of the site. As per RFC 6797,这只会重定向到端口 443

禁用 HSTS headers 并清除来自 Chrome 的缓存响应(使用 chrome://net-internals/#hsts 设置页面)解决了该问题。