Можно ли защитить 80 порт во время выпуска сертификата Let's Encrypt?

Имеем
Debian12
Firewall - nftables
Nginx (трогать его настройки нельзя )
Postfix+dovecot+прочее
Требуется получить сертификаты для postfix+dovecot помощью Let's Encrypt.

Так как для выпуска серта certbot требуется открытый с наружи 80 порт (ну и чтобы на 80-ке никого не было), то наваял такой скрипт-костыль
#! /bin/bash
#стопарим web, открываем 80 порт 
systemctl stop nginx && nft add rule ip FirewallIPV4 input tcp dport 80 accept
#Получаем серты
certbot certonly --standalone -d mail.andreydracon.ru
#Применяем исходные настройки фаера
(exec "/etc/nftables.conf")
#Запускаем web сервер
systemctl restart nginx

Все отработало серты прилетели, nginx рестартанулся, порт 80 закрыт

Напрягает то, что какое-то время был открыт 80 порт для всех (Как я понял Let's Encrypt не афишируют ip своих сервисов. Поэтому ограничить доступ определенными ip не получиться)

Есть ли варианты защиты 80 порта на момент выпуска серта ?
  • Вопрос задан
  • 181 просмотр
Решения вопроса 1
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Вместо того, чтобы городить костыли со standalone certbot, просто добавьте локейшен в nginx и запускайте certbot в режиме webroot:

server {
        listen 80;
        server_name _;

        location /.well-known/acme-challenge {
                root /var/www/letsencrypt;
        }

        location / {
        return 301 https://$server_name$request_uri;
        }
}


А ещё лучше - вместо HTTP используйте DNS-валидацию.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Вопрос конечно странный, попахивает приличной паранойей.
Но если у вас закрыт 80 порт, значит он не используется и вам стоит убрать то, что его использует и открыть, чтобы Lest Encrypt мог сам поднимать на нем временный веб сервер для валидации своих сертификатов.
Это можно сделать - если вам действительно важно использовать http-01 challenge для подтверждения.
НО у LE есть и другие способы валидации, не требующие 80 порта.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы