UseHsts 不适用于 NetCore 2.1 网站

Eri*_*ric 5 c# asp.net-core

我按照Microsoft 文档中的说明配置 UseHsts,但是当我访问我的网站时,我没有看到 Strict-Transport-Security 标头。我在配置上尝试了几种变体,但似乎没有任何影响。任何想法我缺少什么?

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();

    services.AddHsts(options =>
    {
    });

    services.AddHttpsRedirection(options =>
    {
    });            
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseHsts();
    app.UseHttpsRedirection();
    app.UseMvc();
}
Run Code Online (Sandbox Code Playgroud)

这是我在 Chrome 中获得的标题图像,但在其他所有浏览器中看起来也一样。

在此处输入图片说明

Tao*_*hou 8

UseHsts 不包括以下环回主机:

  • localhost :IPv4 环回地址。
  • 127.0.0.1 :IPv4 环回地址。
  • [::1] :IPv6 环回地址。

您可以尝试发布 Web 应用程序并检查标头Strict-Transport-Security

下面是将站点发布到 Azure 的结果。

在此处输入图片说明


Zyg*_*tas 5

这可能是相关的,但我遇到了同样的问题,然后我以错误的顺序使用中间件。此配置启用了响应标头:

app.UseForwardedHeaders();
app.UseHsts();
Run Code Online (Sandbox Code Playgroud)

当然,services.AddHsts(...)也很容易错过。

  • 这让我免去了几个小时的挫败感。除非连接是 HTTPS(有意义),否则不会应用 HSTS,并且在 TLS 终止负载均衡器后面,“UseForwardedHeaders”是知道连接是 HTTPS 的唯一方法。 (2认同)