Safari принудительно перенаправляет на https-версию сайта, который я ранее посещал через https.
Однако сайт https больше не работает, и нет способа предотвратить попытку Safari загрузить его.
Вот связанный с этим вопрос на форумах Apple, Safari продолжает перенаправлять http на https
Если сайт ранее указывал Safari, что он хочет всегда получать доступ по HTTPS через HSTS ( HTTP Strict Transport Security ), то Safari всегда будет пытаться перенаправить на HTTPS.
Вы можете очистить кеш HSTS, удалив файлы ~/Library/Cookies/HSTS.plist
.
Обратите внимание, что Safari также некоторое время кэширует 301 переадресацию, поэтому может потребоваться очистка обычного кеша Safari: в меню «Разработка» (включить в «Настройки» → «Дополнительно») выберите «Очистить кэши».
#На 2020 год...
В текущей MacOS вы должны
/Users/ your user name /Library/Cookies
, что будет выглядеть так:HSTS.plist
в корзину, потом сразу перезагрузить весь Mac.В крайних случаях отключите всю пропускную способность для Mac перед шагами 1-2-3-4.
В текущей MacOS список HSTS немедленно перестраивается, если файл выбрасывается, если происходит какое-либо сетевое взаимодействие. Следовательно, Mac нуждается в немедленной перезагрузке, чтобы корзина заработала.
Политика HSTS теперь включена в сохраненные данные веб-сайта Safari, и вы можете удалить данные локального хоста, чтобы решить эту проблему.
command + ,
Измените https://localhost
на http://localhost
в адресной строке и нажмите клавишу возврата.
localhost
, а любых доменов. Обратите внимание, что для доступа к поддомену необходимо удалить данные родительского домена . То есть, если вы хотите получить доступ http://some.subdomain.somehost.com
и перенаправиться на https
, вам нужно найти somehost.com
на Manage Website Data
странице и удалить ее.С декабря 2017 года Google добавил TLD «.dev» в предварительно загруженный список HSTS для Chrome!
Safari использует тот же список. Таким образом, Safari всегда будет добавлять *.dev в список HSTS...
Похоже, многим разработчикам придется изменить суффикс .dev на другой :(
См.: Chrome принудительно переводит домены .dev на HTTPS через предварительно загруженный HSTS.
Я не нашел рабочего решения, но для обходного пути используйте 127.0.0.1 вместо localhost.
http://localhost/
http://127.0.0.1/
Кажется, что Safari вступает в это безумное поведение, когда вы обращаетесь к локальному хосту, используя сертификат на стороне клиента. В моем случае один из проектов, с которыми я работаю, нуждается в этой настройке на стороне клиента, и это полностью мешает разработке проектов, в которых я не могу использовать http на локальном хосте. Единственный обходной путь, который я нашел, - отредактировать /etc/hosts
и добавить псевдоним для локального хоста, например
127.0.0.1 localhost
Затем используйте Я могу использовать http://localhost:3000 для доступа к моему проекту через порт 3000 без принудительного подключения Safari к https.
Я также столкнулся с проблемой «Кэш Safari HSTS».
Я попробовал решение rm ~/Library/Cookies/HSTS.plist
, но оно не работает.
Но следующие шаги полезны:
rm -f ~/Library/Cookies/HSTS.plist
, удалить файл кэша HSTSkillall nsurlstoraged
, чтобы остановить диспетчер хранилища HTTP (поскольку он имеет кэш-память хостов HSTS)Самое главное, что служба nsurlstoraged имеет в памяти HSTS-кэш, необходимо перезагрузить эту службу.
зигомир
Limit IP Address Tracking
разделе «Системные настройки»> «Сеть». Я также отключилHide IP address
на вкладке «Конфиденциальность» настроек Safari.