HSTS не устанавливается

Я пытаюсь установить заголовок Http Strict-Transport-Security с помощью Asp.Net Core 3. У меня он отлично работает в среде разработки, независимо от того, публикуется ли в Heroku (с использованием элементов https://.heroku.com/buildpacks/jincod/dotnetcore-buildpack) заголовок никогда не появляется (на любой странице , по 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));
            }

Любая помощь приветствуется!

Что я пробовал

Я попытался использовать встроенный метод UseHSTS в Configure и добавить AddHSTS в ConfigureServices. Затем я попытался использовать UseHSTS пакета NWebsec (в Configure) с теми же параметрами, но безуспешно.


person cj-    schedule 02.04.2020    source источник


Ответы (1)


Вот пример конфигурации для https https://github.com/jincod/AspNetCoreDemoApp/blob/master/src/AspNetCoreDemoApp/Startup.cs

ConfigureServices:

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#routing и https://github.com/aspnet/Announcements/issues/301

person jincod    schedule 14.04.2020