Можно ли перенаправить с небезопасного на защищенное соединение после включения HSTS?
Недавно я начал обслуживать заголовок "строгой транспортной безопасности" на одном из своих сайтов. Проблема, которую я не ожидал, состоит в том, что мой SSL-сертификат распространяется только на mydomain.com, и поэтому, если пользователь посещает www.mydomain.com, а не перенаправляется (как это было бы раньше), он видит ошибку безопасности, представленную его браузером. из-за того, что новый заголовок запрещает все не-https связи.
По разным причинам я использую многодоменный сертификат, поэтому не могу просто купить новый сертификат с добавленным "www".
Я понимаю, почему это ожидаемое поведение, однако мне интересно, есть ли у меня возможность перенаправить www на не-www, несмотря на то, что у www нет действующего сертификата на домене www?
Если это имеет какое-то значение, мой сервер работает под управлением Ubuntu.
1 ответ
Как упомянуто в комментариях, если у вас есть includeSubDomains в заголовке HSTS, то это вызовет проблемы, так как браузеры, имеющие этот заголовок, попытаются посетить https://my.yourdomain.com/ (то есть через HTTPS), что приведет к ошибке сертификата.
Если честно, лучше всего включать mydomain.com и www.domain.com, если какие-либо сертификаты и большинство центров сертификации будут включать эти два домена по одинаковой цене. Это не работает для многодоменных или подстановочных сертификатов, но все же является наилучшей практикой, поэтому следует делать это там, где это возможно.
Конечно, вы можете удалить часть includeSubDomains из вашего заголовка HSTS, как это предлагается в комментариях, и это решит проблему (как только будут получены ответы из кэша, заданные с помощью maxage time - что в вашем примере составляет один год), однако есть и другие риски здесь. Например, кто-то может настроить wwww.mydomain.com (с 4 w) или secure.mydomain.com или любой другой законно выглядящий поддомен и обслуживать его через http вместо https, и посетители могут не заметить. Кроме того, субдомены могут получать доступ или иметь возможность устанавливать файлы cookie для доменов, частью которых они являются, используя атрибут пути. Это крайние случаи, и наличие HSTS даже без includeSubDomains по-прежнему обеспечивает надежную защиту, поэтому лучше включить его даже без includeSubDomains, но если приложить усилия для включения HSTS, было бы лучше иметь возможность включить его полностью.
В любом случае, в конце концов, независимо от рисков, все же рекомендуется оба: 1) обслуживать субдомены www через HTTPS, так как некоторые люди или части программного обеспечения будут пробовать этот домен и избегать любых проблем - будь то использование HSTS или нет, и 2) использовать HSTS, в идеале с includeSubDomains, где это возможно.