Recarregar automaticamente o Nginx no sucesso da renovação do certboot?

1

A cada três meses, meu certificado Let's Encrypt expira e meus clientes recebem um certificado https inválido.

Então, recentemente, coloquei a seguinte tarefa Cron:

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

Do meu entendimento, quando certbot renew atualiza com êxito o certificado, ele retorna um estado de sucesso (exit (0)), então o && é seguido e, portanto, o nginx é recarregado.

Sim, mas não funciona. Recentemente tive meu servidor mostrando novamente um certificado expirado, então eu certamente entendi mal alguma coisa, e / ou minha tarefa cron não é boa.

Você poderia me mostrar o caminho, por favor? :)

    
por Cyril N. 17.03.2017 / 16:13

1 resposta

2

melhor abordagem é usar --renew-hook , que pode chamar script. Também --no-self-upgrade é uma boa opção para renovação automática, esta opção evita atualizações durante a renovação, que pode ter quebrado alguma coisa

o registro do cron pode ser

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

Esse script é chamado somente quando a ação de renovação acontece e não toda semana

a explicação completa está na página man ou na documentação

    
por 17.03.2017 / 19:30