Как передать пользователю сообщение об ошибке сброса подключения, если пользователь заходит на веб-сайт, например http://example.com:443, вместо того, чтобы выдать следующую ошибку:
Плохой запрос
Ваш браузер отправил запрос, который этот сервер не может понять.
Причина: вы говорите по обычному протоколу HTTP с портом сервера с поддержкой SSL.
Вместо этого используйте схему HTTPS для доступа к этому URL, пожалуйста.
Вышеупомянутая ошибка предоставляется Apache пользователю, которого я не хочу. Вместо этого я просто хочу разорвать соединение и не давать текстового ответа. Возможно ли это, потому что на многих сайтах есть эта функция. Заранее спасибо. (Кроме того, я не мог ничего попробовать сам, потому что понятия не имел, как это работает, так что я могу реализовать это сам, если смогу).
В чем-то похоже, но все равно не отвечает на мой вопрос: Обслуживающий порт 443 через http создает ошибку 400 Bad Request вместо перенаправления, но упоминается: «Если вы попробуете такие запросы с другими серверами, они либо закроют соединение без каких-либо ошибок, либо просто зависнут, потому что они все еще надеются получить подтверждение TLS от клиента», поэтому мой вопрос в том, как закрыть соединение, если пользователь обращается к http://example.com:443.
Обратите внимание, что я хочу закрыть соединение, когда пользователь обращается к порту 443 на http: // вместо https: //. Я не хочу, чтобы apache отображал сообщение о неверном запросе. Я хочу закрыть соединение, потому что упоминается, что невозможно перенаправить 443 с http: // на https: //. Если есть какой-либо способ сделать это, дайте мне знать (кроме HSTS, которому я не желаю доверять). Думаю, это будет сделано с помощью брандмауэра (не уверен). Я также видел, как это делает cPanel, но я не использую cPanel для каких-то других целей, поэтому, пожалуйста, не просите меня об этом.
Невозможно изменить страницу 400 неверных запросов, если вы не измените исходный код Apache, поэтому перенаправление с http на https будет невозможно. Я не думаю, что мне разрешено изменять исходный код Apache.
Я также видел это бегство curl http://www.google.com:443
говорит curl: (52) Empty reply from server
, поэтому отправки пустого ответа должно быть достаточно, чтобы соединение было остановлено, верно? Я не уверена. Но, может быть, да, если да, то как? (Не отвечайте на этот вопрос, если есть другой метод отключения соединения).
Чтобы было ясно: я прошу что-то вроде sudo ufw deny out 443 http
(может быть недействительным) или что-то в этом роде.
Интересный. А как насчет этого:
<VirtualHost *:443>
<Location />
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
Это запретит трафик на порт 443 для чего-либо, кроме localhost.
Но на самом деле я думаю, что вы, вероятно, захотите (?) Просто перенаправить все HTTP-запросы на https. После перенаправления 443 будет избыточным.