Рейтинг:0

Возврат 444 вместо 400

флаг mt

Если кто-то делает http-запрос к ресурсу https на моем сервере nginx, он получает ошибку 400. «Простой HTTP-запрос был отправлен на порт HTTPS». Есть ли способ вместо этого вернуть 444?

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

Редактировать: я использую это, чтобы предотвратить прямой IP-доступ к моему серверу. Если кто-то делает http-запрос, он получает ответ 400 вместо 444. Я просто не хочу никакого ответа.

сервер {
    слушать 443 ssl http2 default_server;
    слушать [::]:443 ssl http2 default_server;
    ssl_certificate /etc/nginx/ssl/n.pem;
    ssl_certificate_key /etc/nginx/ssl/n2.pem;
    имя сервера _;
    вернуть 444;
}
флаг vn
Наверное, это нужно решать на уровне приложения.
Gerard H. Pille avatar
флаг in
Лучше бы вообще не отвечал. Отправка http на порт https требует усилий, вряд ли это может быть ошибкой.
флаг mt
Вот я и пытаюсь понять, как это сделать. Как мне вообще не отвечать, вместо того, чтобы возвращать ошибку 400?
Michael Hampton avatar
флаг cz
nginx обрабатывает этот сценарий внутри. Это не то, что вы можете (или должны) контролировать.
Рейтинг:0
флаг cn

Возможно, nginx ответит 444 следующим образом:

страница_ошибки 497 =444/444.html;

местоположение = /444.html {
        вернуть 444;
}
Michael Hampton avatar
флаг cz
Откуда берется ошибка 497?
devitrified avatar
флаг cn
497 — это код ошибки для HTTP-запроса, отправленного на порт HTTPS (https://en.wikipedia.org/wiki/List_of_HTTP_status_codes)
Michael Hampton avatar
флаг cz
Интересно. На самом деле я никогда не видел, чтобы nginx отправлял этот код (и он отправляет 400 на моих производственных серверах). Когда это было добавлено и/или как вы его включаете?
devitrified avatar
флаг cn
Официально это не задокументировано, поэтому информации очень мало.
Michael Hampton avatar
флаг cz
Вы действительно пробовали это, чтобы убедиться, что это работает?
devitrified avatar
флаг cn
Конечно, поэтому я разместил его здесь. Если вы используете нестандартный порт для https, вы в конечном итоге получите пауков baidu и других. Они получают 444 с этим решением
Michael Hampton avatar
флаг cz
Хорошо, так как же заставить его работать?
devitrified avatar
флаг cn
Просто скопируйте/вставьте эти строки в блок вашего сервера и перезапустите nginx.
Michael Hampton avatar
флаг cz
На какой версии nginx?
devitrified avatar
флаг cn
Я использую nginx/1.15.8
Michael Hampton avatar
флаг cz
Это еще более странно, потому что я только что попробовал это на 1.20.0, и он возвращает 400, а не 497. Возможно, это было удалено из кода.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.