【问题标题】:HSTS not being set未设置 HSTS
【发布时间】:2020-04-02 01:53:22
【问题描述】:

我正在尝试使用 Asp.Net Core 3 设置 Http Strict-Transport-Security 标头。我让它在开发环境中工作得非常好,无论何时发布到 Heroku(使用 https://elements.heroku.com/buildpacks/jincod/dotnetcore-buildpack),标头都不会显示up(在任何页面上,通过 http 和 https)。

            if (env.IsDevelopment()) {
                app.UseDeveloperExceptionPage();
                app.UseDatabaseErrorPage();
                app.UseBrowserLink();
                app.UseHsts(hsts => hsts.IncludeSubdomains().MaxAge(hours: 1));
            } else {
                app.UseExceptionHandler("/About/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts(hsts => hsts.IncludeSubdomains().MaxAge(days: 366));
            }

非常感谢任何帮助!

我尝试了什么

我尝试在 Configure 中使用内置的 UseHSTS 方法并将 AddHSTS 添加到 ConfigureServices。比我尝试使用具有相同选项的 NWebsec 包的 UseHSTS(在配置中)没有成功。

【问题讨论】:

    标签: asp.net-core heroku


    【解决方案1】:

    此处为 https https://github.com/jincod/AspNetCoreDemoApp/blob/master/src/AspNetCoreDemoApp/Startup.cs 的示例配置

    配置服务:

    services.AddHttpsRedirection(options => { options.HttpsPort = 443; })
    ...
    services.Configure<ForwardedHeadersOptions>(options =>
    {
        options.ForwardedHeaders = ForwardedHeaders.XForwardedFor |
                                    ForwardedHeaders.XForwardedProto;
        options.KnownNetworks.Clear();
        options.KnownProxies.Clear();
    });
    

    配置:

    app.UseForwardedHeaders();
    ...
    app.UseHttpsRedirection();
    

    更多信息https://devcenter.heroku.com/articles/http-routing#routinghttps://github.com/aspnet/Announcements/issues/301

    【讨论】:

      猜你喜欢
      • 2018-09-23
      • 2022-12-09
      • 2019-10-27
      • 2018-04-02
      • 1970-01-01
      • 1970-01-01
      • 2014-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多