# конспект · шаг 5 из 5
Конспект: выпуск и продление
Как сертификат выпускается сам и что должно быть в конфиге, чтобы продление не ломалось.
Как проходит проверка http-01
1. клиент просит сертификат для shop.local
2. Let's Encrypt: «положи файл по адресу
http://shop.local/.well-known/acme-challenge/<token>»
3. клиент кладёт файл
4. Let's Encrypt делает HTTP-запрос
5. совпало → сертификат выписан
Обязательное исключение в редиректе
server {
listen 80;
server_name shop.local www.shop.local;
location /.well-known/acme-challenge/ { # ДО редиректа
root /var/www/certbot;
}
location / {
return 301 https://$host$request_uri;
}
}
$ команда
certbot certonly --webroot -w /var/www/certbot -d shop.local -d www.shop.local
Два пути
| Путь | Особенность |
|---|---|
certbot (webroot / --nginx) |
классика, работает везде; продление таймером systemd |
нативный модуль nginx-module-acme (1.29.0+) |
выпуск прямо в nginx, без внешнего клиента |
| dns-01 | нужен для wildcard и для серверов без входящего 80 порта |
Ловушки джокера
return 301до блока с челленджем - продление ломается, а узнают об этом через 90 дней, когда сертификат истечёт.- Продление без
reload. Новый файл лежит на диске, nginx держит в памяти старый:--deploy-hook "systemctl reload nginx". - Лимиты Let's Encrypt (сертификатов на домен в неделю) выбираются быстро, если гонять выпуск в цикле при отладке. Для тестов есть staging-окружение.
Что ловит проверка конфига у модуля ACME
| что убрали | nginx -t |
когда всплывёт |
|---|---|---|
resolver |
[emerg] acme_issuer: "resolver" is not configured |
сразу |
state_path |
successful | при рестарте: всё выпускается заново, лимиты |
ssl_certificate_cache |
successful | под нагрузкой |
маска в server_name |
successful | при выпуске: имена нужны явные |
То есть у модуля nginx -t проверяет синтаксис, а не осмысленность: три ошибки
из четырёх доезжают до работы.
Замер про certbot
return 301 на уровне server уводит челлендж в редирект (301), тот же
редирект внутри location / отдаёт файл (200). Работает такая схема ровно до
того дня, когда протухнет https-сертификат, - и ломается именно тогда, когда
нужна.
Комментарии
Пока нет комментариев. Будь первым!
Оставить комментарий