Safari поддерживает HTTPS на локальном хосте

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

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

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

Ответ 1

Я смог решить это на основе ответа от 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.

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

Ответ 3

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

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

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

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

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

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