Safari продолжает заставлять HTTPS на localhost

когда я загружаю http://localhost:3000 в Safari Safari автоматически перенаправляет на https://localhost:3000. Как отключить эту функцию?

зашел в ~/Library/Cookies/HSTS.plist и удалены localhost запись, затем перезапустил Safari, но он просто повторно добавил его в этот файл plist и перенаправил на https.

любые идеи, как это исправить так, что на localhost Я должен явно сказать http или https?

2 ответов


я смог решить эту проблему на основе ответ от Ask Different.

короче говоря, закрытие Safari, а затем выполнение приведенных ниже команд, сработало.

sudo killall nsurlstoraged
rm -f ~/Library/Cookies/HSTS.plist
launchctl start /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist

перезапуск Safari после запуска этого и попытка перейти к http://localhost:3000 решил проблему и не перенаправил наhttps.

надеюсь, это поможет кому-то решить эту проблему.


прежде всего, давайте подтвердим, почему он собирается HTTPS.

в инструментах разработчика он показывает перенаправление 301 или 302?

Если это так, ваш веб-сервер говорит, чтобы перейти на HTTPS. Исправьте конфигурацию веб-сервера.

или это перенаправление 307, которое указывает HSTS?

честно говоря, я не уверен, что Safari показывает это как 307 (поддельный внутренний редирект для представления HSTS), поэтому он может просто пойти туда, не показывая это, но Chrome показывает это.

Если да, то удаление этого файла и перезапуск должны решить эту проблему. Однако вы можете подтвердить, возвращает ли сайт HTTPS HTTP-заголовок strict-transport-security? Если это так, то он просто установит, что в следующий раз вы перейдете на HTTPS (в том числе, если ваша страница загружается и изображение по HTTPS). Вы можете удалить этот заголовок? Или еще лучше, опубликуйте его с максимальным возрастом 0, чтобы он удалил его из кэша браузера HSTS без необходимости выяснять, какой файл это в Или если Safari переместили его из ~ / Library/Cookies / HSTS.файл plist