Почему активируется перенаправление https? - PullRequest
0 голосов
/ 22 сентября 2019

Я на kestrel / nginx с ядром asp.net.У меня есть некоторые URL, которые не нуждаются в перенаправлении https, поэтому у меня есть следующее nginx conf

server {
    listen *:80;
    server_name     example.com *.example.com;

    location / {
        add_header Strict-Transport-Security max-age=15768000;
        return 301 https://example.com$request_uri;
    }

    location /DirectDownload/ {
        proxy_pass  http://example;
        limit_req   zone=one burst=10 nodelay;
    }
}

В файле Startup.cs у меня есть

  • UseHsts ()
  • NO UseHttpsRedirection ()

Как ни странно, это работало в прошлом.К сожалению, заголовок ответа не говорит, какая часть моего приложения запускает перенаправление 307 hsts ... Есть ли что-то очевидное, что я пропускаю?

Это единственное: 80 nginx conf.

Вот пример заголовков: enter image description here

Спасибо за вашу помощь!

1 Ответ

2 голосов
/ 23 сентября 2019

HSTS применяется ко всему серверу

https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security

Политика HSTS передается сервером агенту пользователя через поле заголовка ответа HTTPS с именем «Strict-Transport»-Security». [1]Политика HSTS определяет период времени, в течение которого пользовательский агент должен только безопасно обращаться к серверу. [2]Веб-сайт, использующий HSTS, никогда не должен принимать открытый текст HTTP и не должен подключаться через HTTP или систематически перенаправлять пользователей на HTTPS.Следствием этого является то, что пользовательский агент, не способный выполнять TLS, больше не сможет подключаться к сайту.

Ответ 307 поступает непосредственно из Chrome: https://www.troyhunt.com/understanding-http-strict-transport/

Это Chrome, который говорит: «Я даже не собираюсь выдавать этот запрос, вместо этого я собираюсь изменить его на HTTPS, а затем повторить попытку», что и дает нам второй запрос.Это ключевой момент: Chrome отказался выдать первый запрос по небезопасному протоколу HTTP.

...