Лучшая практика - держите 80 порт открытым

Последнее обновление: | Вся документация

Периодически нам сообщают о проблемах с использованием проверки HTTP-01, потому что отключен 80 порт в настройках брандмауэра на веб-сервере. Мы рекомендуем, чтобы все сервера, предназначенные для использования в общей сети, работали как с HTTP на порту 80, так и с HTTPS на порту 443. Также они должны перенаправлять все запросы, приходящие на 80 порт, и, по возможности, заголовки HSTS (для запросов на 443 порт).

Открытый 80 порт не увеличивает число возможных векторов атаки на ваш сервер, так как запросы на 80 порт обычно обрабатываются тем же ПО, что работает и с 443 портом.

Закрытый 80 порт не снижает риск для человека, который случайно зашел на ваш сайт по HTTP. В обычных обстоятельствах он получит перенаправление на HTTPS, и весь его последующий трафик будет защищен. Если посетитель был объектом для активной MITM-атаки, MITM будет слать ответ на 80 порт, поэтому ваш сайт никогда не вернет “connection refused”.

Наконец, открытый для обслуживания редиректов 80 порт помогает людям попасть на правильную версию вашего сайта (HTTPS-версию). Разными путями, не зависящими от вас, люди могут ненадолго попасть на HTTP-версию сайта – например, через автоматически сформированные ссылки в email или вводя доменное имя вручную. В этом случае лучше пусть произойдет редирект, чем появится ошибка.

К сожалению, вы не можете контролировать блокировку 80 порта на своем сайте. Некоторые интернет-провайдеры блокируют 80 порт по различным причинам. Если ваш провайдер поступает так же, но вы все же хотите получить сертификаты Let’s Encrypt, у вас есть два варианта: можно использовать испытания DNS-01 либо воспользоваться одним из клиентов, поддерживающих испытания TLS-ALPN-01 (на порту 443):