post

Renovar automaticamente o certificado Let’s Encrypt da Bitnami

Os certificados Let’s Encrypt são válidos apenas por 90 dias. Para renovar o certificado antes que ele expire, execute os seguintes comandos no console do servidor como o usuário bitnami. Lembre-se de substituir o marcador de posição DOMAIN pelo seu nome de domínio real e o marcador de posição EMAIL-ADDRESS pelo seu endereço de email.

sudo /opt/bitnami/ctlscript.sh stop
sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --path="/opt/bitnami/letsencrypt" renew --days 90
sudo /opt/bitnami/ctlscript.sh start

NOTA: Você pode usar mais de um domínio (por exemplo, DOMAIN e www.DOMAIN ) especificando a opção –domains quantas vezes o número de domínios que você deseja especificar. Ao fornecer vários domínios, o Lego cria um certificado SAN (Subject Alternate Names) que resulta em apenas um certificado válido para todos os domínios inseridos. O primeiro domínio da sua lista será adicionado como o “CommonName” do certificado e o restante será adicionado como “DNSNames” à extensão da SAN dentro do certificado.

Para renovar automaticamente seus certificados antes que eles expirem, escreva um script para executar as tarefas acima e agende uma tarefa cron para executar o script periodicamente. Para fazer isso:

1. Crie um script em /opt/bitnami/letsencrypt/scripts/renew-certificate.sh

sudo vim /opt/bitnami/letsencrypt/scripts/renew-certificate.sh

2. Ao acessar o editor, aperte a tecla “i” do seu teclado para habilitar a edição, e digite o seguinte conteúdo no script e salve-o. Lembre-se de substituir o marcador de posição DOMAIN pelo seu nome de domínio real e o marcador de posição EMAIL-ADDRESS pelo seu endereço de e-mail.

#!/bin/bash

sudo /opt/bitnami/ctlscript.sh stop apache
sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --path="/opt/bitnami/letsencrypt" renew --days 90
sudo /opt/bitnami/ctlscript.sh start apache

OBS: Para sair do nano editor, aperte a tecla “Esc” e para confirmar e salvar e sair digite “:wq” e aperte “ENTER”.

3. Torne o script executável

sudo chmod +x /opt/bitnami/letsencrypt/scripts/renew-certificate.sh

4. Execute o seguinte comando para abrir o editor crontab

sudo crontab -e

Talvez a primeira vez o terminal pergunte para você qual o editor que você deseja usar, como mostra abaixo:

no crontab for root - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        <---- easiest
  3. /usr/bin/vim.basic
  4. /usr/bin/vim.tiny

Choose 1-4 [2]:

Particularmente uso o editor “vim.basic”, mas isso vai de cada um.
Então no meu caso, digito apenas o numeral “3” e aperto “Enter” para escolher o editor “vim”.

5. Ao abrir o editor, talvez se depare com algo escrito como mostra abaixo:

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

Ao exibir o editor, aperte a tecla “i” do seu teclado para habilitar o editor, e adicione no final do arquivo as seguintes linhas ao arquivo crontab e salve-o

0 0 1 * * /opt/bitnami/letsencrypt/scripts/renew-certificate.sh 2> /dev/null

Para salvar e sair, aperte a tecla “Esc” e digite “:wq” (sem as aspas).

Pronto! Você acaba de criar um arquivo contendo o script de renovação de certificado e configurou seu CRON para executar este arquivo a cada 90 dias automaticamente.

Após isso tudo, seria bom você reiniciar seu servidor, não custa nada.

Se estiver usando o APACHE:

sudo /opt/bitnami/ctlscript.sh restart apache

Caso esteja usando o NGINX:

sudo /opt/bitnami/ctlscript.sh restart nginx

NOTA: Se estiver renovando vários domínios, lembre-se de atualizar o script /opt/bitnami/letsencrypt/renew-certificate.sh para incluir o (s) nome (s) de domínio adicional (s) no comando lego.

LINKS UTEIS
Fonte: https://docs.bitnami.com/aws/how-to/generate-install-lets-encrypt-ssl/