Как я могу обойти HSTS на поддомене интрасети?

363
Akiiino

Итак, у меня есть контроль над небольшим веб-сервером, который контролирует поддомен домена интрасети; в домене включен HSTS, поэтому я не могу подключиться к своему поддомену через HTTP; Я также не могу использовать самозаверяющие сертификаты и HTTPS. Я думал об использовании Let's Encrypt для получения надлежащего сертификата, но из-за недоступности домена из Интернета я тоже не могу этого сделать.

Есть ли способ обойти HSTS для подключения к моему серверу через браузер? (Я пытаюсь настроить экземпляр Jupyter, если это имеет значение)

1
HSTS не влияет на субдомены, если вы явно не добавили `includeSubdomains` Bob 6 лет назад 1
Ну, видимо, это включено; У меня есть только контроль над поддоменом, поэтому я не настроил HSTS Akiiino 6 лет назад 0
К сожалению, вы застряли либо устанавливаете действующий HTTPS, либо заставляете администратора родительского домена удалить `includeSubdomains` (и ожидаете истечения срока действия предыдущей записи HSTS, если вы не единственный пользователь). Bob 6 лет назад 0

1 ответ на вопрос

1
sleske

Собственно, это адрес в спецификации для HSTS, RFC 6797 (выделено мной):

11.3. Использование HSTS в сочетании с самоподписанными сертификатами открытых ключей

Если все четыре из следующих условий выполняются ...

o веб-сайт / организация / предприятие генерирует собственные сертификаты открытого ключа безопасного транспорта для веб-сайтов, и

[...]

... тогда безопасные подключения к этому сайту потерпят неудачу, согласно проекту HSTS. Это необходимо для защиты от различных активных атак, как обсуждалось выше.

[...]

Однако, если указанная организация желает использовать свой собственный CA и самозаверяющие сертификаты совместно с HSTS, она может сделать это путем развертывания своего корневого сертификата CA в браузерах своих пользователей или хранилищах корневых сертификатов CA операционной системы . Кроме того, он может или вместо этого распространять в браузерах своих пользователей сертификат (ы) конечного объекта для конкретных хостов .

Так что вам нужно сделать одно из них:

  • подпишите свой собственный сертификат с сертификатом CA (который вы также сгенерировали) и установите сертификат CA в браузер (или в магазин ОС, если браузер его использует)
  • установить самоподписанный сертификат в браузер или магазин ОС

Как установить сертификат зависит от браузера; Есть несколько ответов о том, как это сделать.

На самом деле, это то, что вы должны делать даже без HSTS, так как это предотвращает обычные предупреждения сертификатов. Тем не менее, с HSTS это на самом деле единственный путь.