Chrome: веб-сайт использует HSTS. Сетевые ошибки ... эта страница, вероятно, будет работать позже

162

Я развиваюсь против localhost. Этим утром, сразу после того, как я использовал fiddler, я начал получать эту ошибку на Chrome (работает правильно в Firefox)

«Вы не можете посетить localhost прямо сейчас, потому что веб-сайт использует HSTS. Сетевые ошибки и атаки, как правило, носят временный характер, поэтому эта страница, вероятно, будет работать позже». введите описание изображения здесь

Теперь localhost работает в chrome, только если запущен fiddler. Я уже удостоверился, что перенаправления прокси, которые делает fiddler, исправлены, когда fiddler выключается.

Я также попытался импортировать сертификат в мой доверенный корень и перезапустить браузер (а также компьютер).

developer747
источник
2
Я сталкиваюсь с этой проблемой, когда ИТ-администратор меняет свою политику. Все, что мне нужно сделать, это запустить команду: gpupdate / force
Jacob Phan

Ответы:

192

Один очень быстрый способ обойти это, когда вы просматриваете экран «Ваше соединение не является частным»:

тип badidea

тип thisisunsafe(благодарность парню Java за поиск новой фразы-пароля)

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

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

Примечание. Разработчики Chrome уже изменили эту кодовую фразу в прошлом и могут сделать это снова. Если badideaперестает работать, пожалуйста, оставьте записку здесь, если вы узнаете новую фразу-пароль. Я постараюсь сделать то же самое.

Изменить: по состоянию на 30 января 2018 года этот пароль больше не работает.

Если я смогу выследить новый, я выложу его здесь. Тем временем я собираюсь потратить время на настройку самоподписанного сертификата, используя метод, описанный в этом сообщении stackoverflow:

Как создать самозаверяющий сертификат с помощью openssl?

Изменить: с 1 марта 2018 года и Chrome версии 64.0.3282.186 эта фраза снова работает для блоков, связанных с HSTS на сайтах .dev.

Изменить: с 9 марта 2018 года и Chrome версии 65.0.3325.146 badideaпароль больше не работает.

Правка 2: проблема с самозаверяющими сертификатами, по-видимому, заключается в том, что, учитывая ужесточение стандартов безопасности по всем направлениям, они вызывают появление собственных ошибок (например, nginx отказывается загружать сертификат SSL / TLS, который включает в себя самозаверяющий сертификат в цепочке полномочий, по умолчанию).

Решением, с которым я сейчас работаю, является замена домена верхнего уровня на всех моих сайтах разработки .app и .dev с помощью .test или .localhost. Chrome и Safari больше не будут принимать небезопасные подключения к стандартным доменам верхнего уровня (включая .app).

Текущий список стандартных доменов верхнего уровня можно найти в этой статье Википедии, включая домены специального назначения:

Википедия: Список доменов верхнего уровня в Интернете: домены специального назначения

Похоже, что эти домены верхнего уровня освобождены от новых ограничений только для https:

  • .местный
  • .localhost
  • .тест
  • (любой нестандартный / нестандартный домен верхнего уровня)

Посмотрите ответ и ссылку codinghands на оригинальный вопрос для получения дополнительной информации:

ответ от codinghands

Рик Гладвин
источник
19
никогда не слышал ничего подобного, но по какой-то причине это работает! Спасибо!
Алексей
огромная помощь! Спасибо вам большое!
RHSmith159
Я даже не могу поверить, что это работает, но это работает. Я не уверен, должен ли я быть счастлив или разозлен, что это не задокументировано; Я потратил ЧАСЫ на годы, занимаясь этим дерьмом в среде разработчиков.
Скотт Байерс
7
Используйте thisisunsafeнепрочитанные badidea. Это было изменено в новой версии
Java Guy
это работает +1, однако chrome действительно должен добавить опцию для продолжения предупреждений, а не просто для блокировки
5413668060
186

Когда вы посещали https: // localhost ранее в какой-то момент, он не только посещал этот сайт по безопасному каналу (https, а не http), но также сообщал вашему браузеру, используя специальный заголовок HTTP: Strict-Transport-Security (часто сокращается до HSTS). ), что он должен использовать только https для всех будущих посещений.

Это функция безопасности, которую веб-серверы могут использовать для предотвращения понижения пользователей до http (намеренно или какой-то злой стороной).

Однако если вы затем выключите свой https-сервер и просто захотите просмотреть http, который вы не можете (по замыслу - в этом смысл этой функции безопасности).

HSTS также не позволяет вам принимать и пропускать прошлые ошибки сертификата.

Чтобы сбросить это, чтобы HSTS больше не устанавливался для localhost, введите в адресной строке Chrome следующее:

chrome://net-internals/#hsts

Где вы сможете удалить этот параметр для "localhost".

Вы также можете узнать, что именно настраивает это, чтобы избежать этой проблемы в будущем!

Обратите внимание, что для других сайтов (например, www.google.com) они «предварительно загружены» в код Chrome и поэтому не могут быть удалены. Когда вы запросите их в chrome: // net-internals / # hsts, вы увидите их в списке staticзаписей HSTS.

И, наконец, обратите внимание, что Google начал предварительную загрузку HSTS для всего домена .dev: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/

Барри Поллард
источник
Я получаю это для gmail.com. Я зашел в chrome: // net-internals / # hsts и запросил gmail.com, нашел Найдено: static_sts_domain: gmail.com static_upgrade_mode: STRICT Попытался удалить домен, но проблема все еще остается.
Пайего
Этот ответ имеет смысл для меня. Моя проблема, однако, заключается в том, что я изменил сервер имен веб-сайтов с wordpress (wordpress hosted) на свой сервер (self hosted) и теперь получаю это, и, вероятно, так же, как и все посетители Chrome. Любая идея, как обойти это для посетителей, не удаляя их кеш?
TomC
2
В основном, единственный ответ - использовать HTTPS в будущем или надеяться, что пользователи не кэшируют его. HTTPS - это путь вперед и свободный от LetsEncrypt. Вы также должны проверить, если кто-то предварительно загрузил ваш сайт в код браузера, но не догадайтесь, сможете ли вы сбросить его самостоятельно. Не знаю, как Wordpress автоматически добавляет HSTS, так что удивляйтесь, как это произошло.
Барри Поллард
Спасибо @BazzaDP - не могу обойти это. Возможно, мне придется изменить имена серверов обратно, выяснить, что на старом сайте вынуждает HTTPS, а затем попытаться выполнить миграцию снова. Вы не можете просто перевести FTP с блогов, размещенных на Wordpress, на новый сайт, поэтому для меня это проблема, и у нового владельца сайта нет SSL-сертификата (хотя в любом случае он серьезно рассматривает возможность его получения)
TomC
2
Как я упоминал в своем ответе, предварительно загруженные (или статические STS) записи нельзя удалить, поскольку они существуют в коде Chrome, а не в локально поддерживаемом списке. И согласно моей последней строке в моем ответе, Google решил предварительно загрузить весь домен dev.
Барри Поллард
24

Нажмите в любом месте окна Chrome и введите thisisunsafe(вместо badideaранее) Chrome.

Этот пароль может измениться в будущем. Это источник

https://chromium.googlesource.com/chromium/src/+/master/components/security_interstitials/core/browser/resources/interstitial_large.js#19

В соответствии с этой строкой, введите window.atob('dGhpc2lzdW5zYWZl')в браузере консоль, и она даст вам фактическую фразу-пароль.

На этот раз пароль thisisunsafe.

Ява Гай
источник
19

У меня была эта проблема с сайтами, работающими на XAMPP с частными именами хостов. Не так уж и приватно, оказывается! Это были все domain.dev, которые Google сейчас зарегистрировал как частный рДВУ , и вынуждает HSTS на уровне домена. Поменял каждый виртуальный хост на .devel(eugh), перезапустил Apache и все теперь хорошо.

codinghands
источник
Я могу подтвердить эту проблему с Opera 50.0.2762.9 и что переключение моего домена разработки с .devна .develобходит ограничение.
Кортни Майлз
5
RFC 2606 резервирует некоторые домены верхнего уровня специально для предотвращения конфликтов с частным тестированием. Похоже, что .testэто, пожалуй, самый правильный выбор для среды разработки.
Кортни Майлз
Это буквально спасло мне жизнь после нескольких дней, когда я не мог понять, почему Chrome так .dev
Д. Петров
Ну, на самом деле .test рекомендуется только для использования при тестировании текущего или нового кода, связанного с DNS.
Алексей
Это решило мою проблему. Я использую Laragon для своей среды разработки.
Крейг
12

Недавно у меня была такая же проблема при попытке к доменам доступа с использованием CloudFlare Origin CA .

Единственный способ обойти / избежать исключения сертификата HSTS в Chrome (сборка Windows) - следовать коротким инструкциям в https://support.opendns.com/entries/66657664 .

Обходной путь:
добавьте в Chrome ярлык --ignore-certificate-errors, затем снова откройте его и перейдите на свой веб-сайт.

Напоминание:
используйте его только в целях разработки.

введите описание изображения здесь

Биньямин
источник
Возможно, попробуйте в Google Canary построить google.com/chrome/browser/canary.html
Биньямин
Предположим, у вас нет сайта, который вызывает ошибку сертификата. Тогда как бы вы проверили, работает ли ваше решение? Здесь не помогает - stackoverflow.com/questions/41902367/…
MasterJoe2
Как насчет версий Mac?
Java Guy
4

Я вижу, что здесь так много полезных ответов, но я все же наткнулся на полезную и полезную статью. https://www.thesslstore.com/blog/clear-hsts-settings-chrome-firefox/

Я столкнулся с той же проблемой, и эта статья помогла мне понять, что это такое и как бороться с этим HTH :-)

Рамакришна
источник
3

Обнаружена похожая ошибка. сброс chrome: // net-internals / # hsts у меня не сработал. Проблема заключалась в том, что часы моего виртуального компьютера были искажены днями. сброс времени удался, чтобы решить эту проблему. https://support.google.com/chrome/answer/4454607?hl=en

psglinux
источник
2

Я сталкиваюсь с той же ошибкой, и режим инкогнито также имеет ту же проблему. Я решаю эту проблему с помощью чистой истории Chrome.

wangf
источник
2

Я страдал от этой проблемы в течение очень долгого времени. Мне не удалось открыть такие сайты, как GitHub. Я почти перепробовал все ответы в Интернете, и никто не работал. Пробовал также переустанавливать хром. Я нашел решение для этого от нашего сетевого парня, и это сработало. В реестре есть исправление, которое устранит эту ошибку на постоянной основе.

  1. Нажмите клавишу Windows + R, чтобы открыть диалоговое окно запуска
  2. введите: regedit и нажмите Enter, чтобы открыть реестр
  3. В дереве слева щелкните по следующему пути HKEY_LOCAL_MACHINE> ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ> ПОЛИТИКА> Microsoft> SystemCertificate> Authroot
  4. Теперь дважды щелкните DisableRootAutoUpdate справа и установите его в 0 (ноль) в появившемся диалоговом окне.
  5. Перезагрузите компьютер, чтобы применить изменения в реестре, и вы больше не получите эту ошибку

Решение выше для Windows 8. Оно почти идентично в более поздних версиях, но я не уверен в более ранних версиях, таких как XP и Vista. Так что это нужно проверить.

Маулик Моди
источник
Вы знаете, что означает этот параметр?
MasterJoe2
@ testerjoe2: Нет, сэр
Маулик Моди
1
Страдает от этого google-analytics.com вместе с другими другими доменами Google. Этот ответ решил мою проблему.
Шон
В статье на support.microsoft.com/en-us/help/2813430/… объясняется поведение клавиш, которые были введены в патче для Windows Vista. Установка этого конкретного значения в 0 приводит к тому, что обновленные корневые сертификаты автоматически выбираются из Центра обновления Windows и устанавливаются в хранилище доверенных корневых центров сертификации. В корпоративной среде это может быть отключено в качестве меры безопасности; однако это означает, что кто-то должен управлять доверенными корневыми центрами сертификации на уровне предприятия.
JamieSee