Я получил эту ошибку в журнале apache:
[Mon Oct 28 16:11:33.074606 2019] [ssl:error] [pid 30553] AH02031: Hostname mywebsite.com provided via SNI, but no hostname provided in HTTP request
Я не мог найти никакой информации об этом. Что это значит?
Веб-сайт не отвечал и был на 100% ЦП в течение часа, мне пришлось остановить его из консоли, когда я смотрю журнал ошибок, я видел только указанную выше ошибку, которая была в то время, когда ЦП стал 100 %
Я подозреваю, что это может быть какая-то форма хакерской атаки, поскольку это сообщение похоже на Конфликт между доменами, предоставленными SNI и HTTP
Я подозреваю, что это может быть какая-то форма хакерской атаки, поскольку это сообщение похоже на Конфликт между доменами, предоставленными SNI и HTTP.
Теоретически это может быть хакер, но он также может быть совершенно невиновным. Это отличается от проблемы в вопросе, который вы тоже связали, когда кто-то намеренно использует другое имя в ClientHello и Host
заголовок.
В этом случае просто нет Host
заголовок. Вместо злоумышленника я скорее подозреваю, что кто-то пробует HTTP, не прочитав должным образом спецификацию, или пытается просто запросы HTTP / 1.0 (которые не требуют Host
заголовок во всех случаях в отличие от HTTP / 1.1) по-прежнему работает.
Например, следующий простой код Perl создаст такую запись журнала, если www.example.com
будет установка с несколькими доменами, обслуживаемая Apache:
use IO::Socket::SSL;
my $cl = IO::Socket::SSL->new('www.example.com:443');
print $cl "GET / HTTP/1.0\r\n\r\n";
И с небольшой доработкой (с ожидаемой Host
заголовок) сообщения не было бы:
print $cl "GET / HTTP/1.0\r\nHost: www.example.com\r\n\r\n";