Как избежать перезапуска nginx для обновления сертификата letsencrypt?

Я установил сервер Nginx для размещения своего сайта и добавил HTTPS с помощью LetsEncrypt.

Проблема заключается в том, что каждый раз, когда срок действия сертификата истекает, мой сайт становится недоступным, и мне нужно вручную перезапускать сервис, используя Так что каждые два месяца я вынужден делать вручную:

sudo service nginx restart

Я пытался автоматизировать это уже несколько раз, но не удалось. Моя последняя попытка была использовать это:

sudo crontab -e 

0 0,12 * * * letsencrypt renew >/dev/null 2>&1 
1 0,12 * * * root /etc/init.d/nginx reload

Это неправильный путь? Как я могу проверить работу этой работы, не дожидаясь, пока мой сайт снова станет недоступным?

0
задан 31 August 2019 в 05:15

2 ответа

Вы хотели бы добавить задание крона для ухода каждые 3 месяца, это обычно делается при использовании certbot во-первых.

сертификаты Let’s Encrypt’s только действительны в течение девяноста дней. Это должно поощрить пользователей автоматизировать свой процесс возобновления сертификата. certbot пакет, который мы установили, заботится об этом для нас путем добавления возобновить сценария к/etc/cron.d. Этот сценарий выполнения два раза в день и автоматически возобновит любой сертификат that’s в течение тридцати дней после истечения.

Для тестирования процесса возобновления можно сделать пробный прогон с certbot:

sudo certbot renew --dry-run

, Если Вы не видите ошибок, you’re весь набор. Когда необходимо, Certbot возобновит Ваши сертификаты и перезагрузит Nginx для взятия изменений. Если автоматизированный процесс возобновления когда-нибудь перестал работать, Let’s Шифруют, отправит сообщение в электронную почту, которую Вы указали, предупредив Вас, когда Ваш сертификат собирается истечь.

кроме того, Вам НЕ придется перезапустить Nginx, если Вы не перемещаете сертификат, он должен взять, где Вы кончили, после того как новый сертификат сделан. Когда сертификат SSL возобновил, он сохраняет в том же месте?

0
ответ дан 23 October 2019 в 03:54

Просто разверните контейнер Docker с помощью этой команды, чтобы установить сертификаты letencrypt ssl.

docker run \
--name=letsencrypt \
--cap-add=NET_ADMIN \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-e URL=your.domain.com \
-e VALIDATION=http \
-e EMAIL=****@gmail.com \
-e PROD=true \
-p 443:443 \
-p 80:80 \
-v /path/to/appdata/config:/config \
-d \
--restart unless-stopped \
linuxserver/letsencrypt

Теперь автоматическое обновление сертификатов с помощью скрипта, доступного в /app/le-renew.sh Для этого установите crontab

0 0 1 * * sudo docker exec letsencrypt /app/le-renew.sh
-1
ответ дан 23 November 2019 в 17:13

Другие вопросы по тегам:

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