—
Обсуждение тут
—
🔹 ШАГ 0. Проверка DNS (обязательно)
dig +short mail.ru
👉 ДОЛЖЕН возвращаться публичный IP nginx reverse proxy.
Если не так — сначала исправь DNS.
🔹 ШАГ 1. Подготовка каталога для ACME
mkdir -p /var/www/mail.ru
chown -R www-data:www-data /var/www/mail.ru
chmod -R 755 /var/www/mail.ru
🔹 ШАГ 2. Конфигурация nginx (порт 80)
Создай или отредактируй конфиг на reverse proxy:
server {
listen 80;
server_name mail.ru;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
default_type "text/plain";
allow all;
}
location / {
return 301 https://$host$request_uri;
}
}
Проверь и перезагрузи nginx:
nginx -t && systemctl reload nginx
🔹 ШАГ 3. Проверка вручную (ОЧЕНЬ ВАЖНО)
echo "ok" > /var/www/certbot/test.txt
curl http://mail.ru/.well-known/acme-challenge/test.txt
👉 ДОЛЖНО вернуть:
ok
❗ Если не работает — certbot тоже не сработает.
🔹 ШАГ 4. Получение сертификата
certbot certonly \
--webroot \
-w /var/www/mail.ru \
-d mail.ru
Если всё ок — увидишь:
Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/mail.ru/
🔹 ШАГ 5. Подключение сертификата в nginx (пример)
ssl_certificate /etc/letsencrypt/live/mail.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.ru/privkey.pem;
🔹 ШАГ 6. Автообновление
Certbot уже добавил systemd-timer.
Проверь:
certbot renew --dry-run
🔹 ШАГ 7. (Опционально) Если сертификат нужен почтовому серверу
Если почтовый сервер на другой машине, добавь deploy-hook:
cat << 'EOF' > /etc/letsencrypt/renewal-hooks/deploy/mail.sh
#!/bin/bash
scp -r /etc/letsencrypt/live/mail.ru mailserver:/etc/ssl/mail/
ssh mailserver "systemctl reload postfix dovecot"
EOF
chmod +x /etc/letsencrypt/renewal-hooks/deploy/mail.sh