OBS: Parti do pressuposto que o certificado let's encrypt já existe no servidor e já está configurado.
1 - Primeiro configurei para usar comandos de pre_hook e post_hook dentro do arquivo de renovação do certificado:
Pre_hook: Pode ser executado comandos ou tarefas antes de iniciar a tentativa de renovação do certificado.
Post_hook: Pode ser executado comandos ou tarefas depois da tentativa de renovação do certificado.
Local do arquivo: /usr/local/etc/letsencrypt/renewal/drive.com.br.conf
# renew_before_expiry = 30 days
version = 1.0.0
archive_dir = /usr/local/etc/letsencrypt/archive/drive.com.br
cert = /usr/local/etc/letsencrypt/live/drive.com.br/cert.pem
privkey = /usr/local/etc/letsencrypt/live/drive.com.br/privkey.pem
chain = /usr/local/etc/letsencrypt/live/drive.com.br/chain.pem
fullchain = /usr/local/etc/letsencrypt/live/drive.com.br/fullchain.pem
# Options used in the renewal process
[renewalparams]
pre_hook= service apache24 stop
post_hook= service apache24 start
account = 010867c9b7ebd1a1a0db9a49204eda24
authenticator = standalone
server = https://acme-v02.api.letsencrypt.org/directory
Como podemos ver, inseri um comando de parada do apache antes de executar a renovação e após a renovação, inicia novamente o serviço.
2 - Agora com o arquivo configurado, executei o teste de renovação para ver se não haveria problemas:
# certbot renew --dry-run
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /usr/local/etc/letsencrypt/renewal/drive.com.br.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not due for renewal, but simulating renewal for dry run
Plugins selected: Authenticator standalone, Installer None
Running pre-hook command: service apache24 stop
Output from pre-hook command service:
Stopping apache24.
Waiting for PIDS: 39217.
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for drive.com.br
Waiting for verification...
Cleaning up challenges
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed without reload, fullchain is
/usr/local/etc/letsencrypt/live/drive.com.br/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates below have not been saved.)
Congratulations, all renewals succeeded. The following certs have been renewed:
/usr/local/etc/letsencrypt/live/drive.com.br/fullchain.pem (success)
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates above have not been saved.)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Running post-hook command: service apache24 start
Output from post-hook command service:
Performing sanity check on apache24 configuration:
Starting apache24.
Syntax OK
Como podemos ver acima, a renovação do certificado ocorreu após o serviço do apache parar, depois que houve o sucesso, o serviço foi inicializado novamente.
3 - Com o nosso teste funcionando corretamente, vamos inserir na cron do servidor a execução de renovação do certificado:
Vamos inserir no final do arquivo "/etc/crontab" o seguinte:
0 1 * * * /usr/local/bin/certbot renew
Após inserir os valores acima, nossa renovação de certificado será verificada todos os dias à 1h da manhã, e executará com duas condições
- Se executar antes de 30 dias de prazo de expiração, não renovará nada e dará skip na tentativa;
- Se executar com 30 dias de prazo de expiração ou menos, executará a renovação do certificado.
Por hoje é só have a nice day =D
Mais informações: https://letsencrypt.org/pt-br/
Nenhum comentário:
Postar um comentário