Назад | Перейти на главную страницу

Автоматическая перезагрузка Nginx при успешном обновлении certboot?

Каждые три месяца мой сертификат Let's Encrypt истекает, и мои клиенты получают недействительный сертификат https.

Итак, я недавно разместил следующую задачу cron:

@weekly certbot renew --quiet && service nginx reload

Насколько я понимаю, когда certbot renew успешно обновить сертификат, он возвращает состояние успеха (exit (0)), поэтому && следует, и поэтому nginx перезагружается.

Да, но это не работает. Недавно мой сервер снова показывал просроченный сертификат, поэтому я определенно что-то неправильно понял, и / или моя задача cron не подходит.

Не могли бы вы показать мне путь? :)

лучший подход - использовать --renew-hook который может вызывать скрипт. Также --no-self-upgrade хороший вариант для автоматического продления, эта опция предотвращает обновления во время продления, которые могут что-то сломать

запись cron может быть

certbot renew --quiet --no-self-upgrade --renew-hook /path/to/hook.sh

hook.sh

#!/bin/sh
set -e
nginx -t -q && nginx -s reload
exit 0

Этот скрипт вызывается только тогда, когда происходит действие обновления, а не каждую неделю.

полное объяснение находится на странице руководства или в документации