hsts на основном порте 80, а не на других портах

Я установил hsts для своего домена на сайте http://server.mydom.tld/, поэтому браузер переходит на порт https://server.mydom.tld/ на порт 443

Однако у меня также есть другие веб-серверы, работающие на других портах. Поэтому, когда я захожу на http://server.mydom.tld:8888/ он перенаправляется на https://server.mydom.tld:8888/, но этот сервер не запускает https, поэтому запрос не выполняется.

Это согласно спецификации?

Я заметил, что не запускаю hsts на http://mydom.tld/ или http://www.mydom.tld/, что, вероятно, является ошибкой.

Что делать?

2 ответа

Решение

Да, это намеренно. RFC 6797 заявляет:

     The UA MUST replace the URI scheme with "https" [RFC2818], and

     if the URI contains an explicit port component of "80", then
     the UA MUST convert the port component to be "443", or>>

     if the URI contains an explicit port component that is not
     equal to "80", the port component value MUST be preserved;
     otherwise,

     if the URI does not contain an explicit port component, the UA
     MUST NOT add one.

     NOTE:  These steps ensure that the HSTS Policy applies to HTTP
            over any TCP port of an HSTS Host.

Вам следует запускать простые службы HTTP в другом домене или, что еще лучше, использовать сервер HTTP+TLS в качестве обратного прокси-сервера для внутренней простой службы HTTP.

Заголовок Strict-Transport-Security игнорируется браузером, когда к вашему сайту обращаются по HTTP; это потому, что злоумышленник может перехватить HTTP-соединения и вставить заголовок или удалить его. Когда к вашему сайту обращаются по HTTPS без ошибок сертификата, браузер знает, что ваш сайт поддерживает HTTPS и будет учитывать заголовок Strict-Transport-Security.

Если кто-то действительно не хочет запускать https в другой службе, можно добавить псевдоним в DNS, поэтому https://server.domain.tld и http://service.domain.tld:8888 находятся на одном IP. / сервер

Затем можно добавить перенаправление с http://service.domain.tld и https://service.domain.tld на http://service.domain.tld:8888.

Другие вопросы по тегам