Para que httpd
observe os novos certificados, solicite que eles façam uma " reinicialização gradual ". Dos documentos:
The USR1 or graceful signal causes the parent process to advise the children to exit after their current request (or to exit immediately if they're not serving anything). The parent re-reads its configuration files and re-opens its log files. As each child dies off the parent replaces it with a child from the new generation of the configuration, which begins serving new requests immediately.
Como uma reinicialização elegante, isso não causará tempo de inatividade.
Para que o letsencrypt / certbot acione uma reinicialização normal, use o argumento --post-hook
. Esse argumento executará um comando uma vez, se qualquer renovação do certificado tiver sido tentada. A partir dos docs :
Command to be run in a shell after attempting to obtain/renew certificates. Can be used to deploy renewed certificates, or to restart any servers that were stopped by --pre-hook. This is only run if an attempt was made to obtain/renew a certificate. (default: None)
Então o comando que você quer é
certbot renew --post-hook "apachectl graceful"
ou se for executado a partir de um cron job
certbot renew --quiet --post-hook "apachectl graceful"
(Obrigado ao @RustyX pela ajuda com esta resposta)