В моем appsettings.json
я добавил эту строку кода:
"Hsts": {
"HstsEnable": true
}
В launchSettings.json
я добавил https://localhost:5000
:
"applicationUrl": "http://localhost:5001;https://localhost:5000"
Затем в Program.cs
iиспользовал эти URL:
return WebHost.CreateDefaultBuilder(args)
.UseKestrel(x => x.AddServerHeader = false)
.UseUrls("http://localhost:5001", "https://localhost:5000")
.UseStartup<Startup>()
В классе запуска, в Configure
методе я получаю Hsts
значение из appSettings.json
:
if (Configuration.GetSection("Hsts").GetValue<bool>("HstsEnable"))
{
app.UseHsts();
}
app.UseHttpsRedirection();
После всех этих шагов я не могу получить Strict-Transport-Security
. Все, что я получаю из заголовков ответа:
cache-control: no-store,no-cache
content-type: application/json; charset=utf-8
pragma: no-cache
Hsts
вырезанные заголовки из ответа. Без всех этих строк кода (для настройки hsts
в моем приложении) сверху я получаю заголовки этого ответа:
access-control-allow-credentials: true
access-control-allow-origin: *
access-control-expose-headers: Content-Disposition
cache-control: no-store,no-cache
content-type: application/json; charset=utf-8
date: Fri, 11 Oct 2019 09:21:30 GMT
pragma: no-cache
transfer-encoding: chunked
vary: Origin
x-frame-options: DENY
x-stackifyid: id
Так что что-то не так с этим Hsts
.
Как добавить заголовок HSTS
в заголовки ответа, о котором я упоминал выше? Нужно ли мне жестко кодировать заголовок для моего Configure
метода?
context.Response.Headers.Add("Strict-Transport-Security", "max-age=31536000");