Safari Перенаправление http на (несуществующий) https

34

Safari принудительно перенаправляет на https-версию сайта, который я ранее посещал через https.

Однако сайт https больше не работает, и нет способа предотвратить загрузку формы Safari.

HTTP перенаправляет на HTTPS

Вот связанный вопрос Apple Форумы, Safari продолжает перенаправлять http на https

rjstelling
источник
Возможно ли, что HSTS был включен где-то в прошлом?
Макс Райд
@MaxRied Это звучит как хорошее предложение, я не знаю. Для справки: en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
rjstelling

Ответы:

19

Если сайт ранее указывал Safari, что он всегда хочет получить доступ через HTTPS через HSTS ( HTTP Strict Transport Security ), тогда Safari всегда будет пытаться перенаправить на HTTPS.

Вы можете очистить кеш HSTS, удалив ~/Library/Cookies/HSTS.plist.

Обратите внимание, что Safari некоторое время также кэширует перенаправления 301, и, следовательно, может потребоваться очистка обычного кэша Safari: в меню «Разработка» (включите в «Предпочтения» → «Дополнительно») выберите «Пустые кэши».

Grg
источник
Я должен начать писать ответы ...
Макс Рид
10
@grgarside Я пробовал это несколько раз, это больше не работает
kushdilip
«Очистка нормального кэша Safari» - как именно ??
Wildcard
@Wildcard Я отредактировал свой ответ с этой информацией
grg
8

С декабря 2017 года Google добавил домен .dev в предварительно загруженный список HSTS для Chrome!

Safari использует тот же список. Так что Safari всегда будет добавлять * .dev в список HSTS ...

Похоже, многим разработчикам нужно поменять суффикс .dev на другой :(

См. Chrome для принудительной установки доменов .dev в HTTPS через предварительно загруженный HSTS.

Бруно де л'Эскай
источник
1
Это вызывает мою ярость. Ни один TLD не должен быть полностью собственностью. Есть замечательные вещи, называемые VPN или Интранет, которые были бы уместны. (PS моя ярость направлена ​​на гугл, а не на ответ) :).
Вольт
8

Политика HSTS теперь включена в сохраненные данные веб-сайта Safari, и вы можете удалить данные localhost, чтобы устранить эту проблему.

  1. command + ,
  2. Конфиденциальность -> Управление данными сайта ...
  3. Поиск localhost
  4. Нажмите Удалить

Изменение https://localhostк http://localhostв адресной строке и нажмите клавишу возврата.

Джонатан Элмор
источник
1
Это касается не только localhost, но и любых доменов. Обратите внимание, что для доступа к поддомену необходимо удалить данные родительского домена . Т.е., если вы хотите получить доступ http://some.subdomain.somehost.comи получить перенаправление https, вам нужно найти somehost.comна Manage Website Dataстранице и удалить его.
Войгер
5

Я не нашел никакого рабочего решения, но для обходного пути используйте 127.0.0.1 вместо localhost

http://localhost/

http://127.0.0.1/
saintmarl
источник
1

Кажется, Safari входит в это безумное поведение, когда вы получили доступ к localhost с помощью сертификата на стороне клиента. В моем случае, один из проектов, с которыми я работаю, нуждается в настройке на стороне клиента, и это полностью разрушает разработку для проектов, где я не могу использовать http на localhost. Единственный обходной путь, который я нашел, - это отредактировать /etc/hostsи добавить псевдоним для localhost, вот так

127.0.0.1 localhost

Затем используйте « http: // localhost: 3000», чтобы получить доступ к моему проекту через порт 3000, не устанавливая Safari соединение https.

PEZ
источник