Продление сертификатов SSL (Let's Encrypt)
Сертификаты Let's Encrypt действительны 90 дней. Рекомендуем продлевать их каждые 60 дней, чтобы избежать перебоев в работе Листохода по HTTPS.
Ручное продление
- Перейдите в каталог, в который установлен Листоход:
- Остановите контейнер app, чтобы освободить 80 порт для проверки домена со стороны Let's Encrypt:
- Запустите продление сертификата (будут продлены все ранее выпущенные сертификаты):
- Запустите контейнер app обратно, чтобы он подхватил обновленные сертификаты:
Текущий срок действия сертификата можно посмотреть командой:
Автоматическое продление
Чтобы не выполнять команды вручную, настройте задание в cron, которое будет проверять и при необходимости продлевать сертификат раз в неделю. Этого достаточно: сертификат действует 90 дней, и даже если очередная попытка завершится ошибкой, до истечения срока останется ещё несколько недель и несколько повторных попыток.
- Создайте скрипт
/listohod/bin/renew-ssl.shсо следующим содержимым:
- Сделайте скрипт исполняемым:
- Откройте редактор crontab от пользователя root:
- Добавьте в конец файла строку, которая будет запускать проверку каждое воскресенье в 03:30:
После сохранения файла дальнейшее продление сертификатов будет выполняться автоматически. Certbot сам определяет, нужно ли обновлять сертификат: фактическое продление произойдет, только если до окончания срока действия осталось менее 30 дней. В остальные недели скрипт ничего не меняет, контейнер app поднимается обратно сразу же.
Если Листоход работает за внешним reverse proxy (см. Запуск за reverse proxy), продлевайте сертификаты средствами того сервера, на котором установлен reverse proxy — например, командой certbot renew на хост-системе. В этом случае останавливать контейнеры Листохода не нужно.