Como renovo um certificado SSL Let's Encrypt em uma pilha Bitnami hospedada em uma instância do Lightsail?

Última atualização: 2021-10-21

O certificado SSL Let's Encrypt instalado para meu site em uma instância Bitnami do Amazon Lightsail está prestes a expirar. Como posso renová-lo?

Descrição breve

Os certificados SSL Let's Encrypt expiram 90 dias após a criação. Se tiver instalado um certificado Let's Encrypt padrão seguindo as etapas fornecidas em Como instalo um certificado Let's Encrypt padrão em uma pilha Bitnami hospedada no Amazon Lightsail?, o certificado SSL é renovado automaticamente. No entanto, a renovação automática pode falhar se não estiver configurada corretamente.

Se tiver instalado um certificado Let's Encrypt curinga seguindo o método 2 em Como instalo um certificado SSL Let's Encrypt curinga em uma pilha Bitnami hospedada no Amazon Lightsail?, é necessário renovar o certificado manualmente. O método 2 não oferece suporte à renovação automática.

A resolução a seguir aborda a renovação manual do certificado em instâncias do Lightsail hospedadas no Bitnami, como WordPress, LAMP, Magento, MEAN e assim por diante. A resolução a seguir não fornece orientações sobre como descobrir por que a renovação automática falhou.

Resolução

Antes de começar

Identifique quais das seguintes ferramentas você usou para instalar o certificado:

  • Cliente “bncert-tool” ou “Lego” fornecido pela Bitnami
  • Pacote “Certbot”

Para identificar a ferramenta que usou para instalar o certificado SSL:

1.    Execute o seguinte comando para procurar o arquivo de certificado nos diretórios /etc/letsencrypt e /opt/bitnami/letsencrypt. Certifique-se de substituir DOMAIN por seu nome de domínio.

sudo grep -irl "$(openssl s_client -verify_quiet -showcerts -connect DOMAIN:443 2>/dev/null | sed -n '/BEGIN/,/END/{p;/END/q}' | head -n 3 | tail -n 2)" /opt/bitnami/letsencrypt /etc/letsencrypt

2.    Se o arquivo de certificado estiver dentro dos subdiretórios de /opt/bitnami/letsencrypt, provavelmente o certificado foi instalado usando o client bncert-tool ou Lego. Para verificar isso, execute o seguinte comando:

sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt list

Se a saída do comando na etapa 1 corresponder ao caminho do certificado fornecido pelo comando anterior, seu certificado foi instalado usando bncert-tool ou Lego.

Se o arquivo de certificado estiver dentro dos subdiretórios de /etc/letsencrypt, provavelmente o certificado foi instalado usando o Certbot. Para verificar isso, execute o seguinte comando:

sudo certbot certificates

Se a saída do comando na etapa 1 corresponder ao caminho do certificado fornecido pelo comando anterior (se houver), seu certificado foi instalado usando o Certbot.

Renovar um certificado Let's Encrypt instalado usando a ferramenta bncert-tool ou Lego

Execute os seguintes comandos:

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

Nos comandos anteriores, substitua EMAIL-ADDRESS e DOMAIN pelos valores corretos.

Você pode usar qualquer um dos seus endereços de e-mail funcionais. Como alternativa, você pode usar o mesmo endereço de e-mail usado quando instalou o certificado. Você pode recuperar o e-mail usado ao instalar o certificado executando o seguinte comando:

sudo ls /opt/bitnami/letsencrypt/accounts/acm*

É possível confirmar o nome de domínio executando o seguinte comando:

sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt list

Renovar um certificado Let's Encrypt instalado usando a ferramenta Certbot

Determine o método de autenticação usado para instalar o certificado. Para fazer isso, execute o seguinte comando. Substitua DOMAIN pelo nome de domínio primário do seu certificado. Para determinar o nome de domínio, execute o comando sudo certbot certificates.

sudo cat /etc/letsencrypt/renewal/DOMAIN.conf

Na saída do comando, exiba o valor do parâmetro authenticator.

Se o valor do parâmetro authenticator for standalone, webroot, apache, nginx, dns-route53 e assim por diante, conclua a renovação executando os seguintes comandos:

sudo /opt/bitnami/ctlscript.sh stop
sudo certbot renew
sudo /opt/bitnami/ctlscript.sh start

Os comandos anteriores renovam todos os certificados instalados que devem ser renovados.

Se o valor do parâmetro authenticator for manual e o valor do parâmetro pref_challs for dns, não será possível configurar a renovação automática. É necessário renová-lo manualmente seguindo as etapas abaixo. Observe que você deve repetir essa etapa sempre que renovar o certificado.

1.    Este método requer a adição de registros TXT no provedor de DNS do domínio. Esse processo pode levar algum tempo, logo, uma das práticas recomendadas é executar os comandos na Tela GNU do Linux para evitar que a sessão atinja o tempo limite. Para iniciar uma sessão de tela, digite o seguinte comando:

screen -S letsencrypt

2.    Execute o comando a seguir e procure o valor do parâmetro Domains. No exemplo a seguir, substitua DOMAIN pelo nome de domínio primário do seu certificado.

sudo certbot certificates -d DOMAIN

3.    Execute o seguinte comando para renovar o certificado. Certifique-se de incluir cada domínio encontrado no comando anterior usando a opção -d na mesma ordem. Se incluir domínios adicionais, se remover quaisquer domínios atuais ou se alterar a ordem dos domínios, um novo certificado poderá ser criado com o nome DOMAIN-001 em vez da renovação do certificado original.

sudo certbot certonly --manual --preferred-challenge dns -d DOMAIN-1 -d DOMAIN-2 --force-renewal

4.    Você recebe um aviso para verificar se é o proprietário do domínio especificado adicionando registros TXT aos registros DNS do seu domínio. O Let's Encrypt fornece um ou vários registros TXT que você deve usar para a verificação.

5.    Quando visualizar um registro TXT na tela, primeiramente adicione o registro fornecido ao DNS do seu domínio. NÃO PRESSIONE ENTER até confirmar que o registro TXT foi propagado para o DNS da Internet. Além disso, NÃO PRESSIONE CTRL+D, pois isso encerra a sessão da tela atual.

6.    Para confirmar se o registro TXT foi propagado para o DNS da Internet, procure em DNS Text Lookup (Pesquisa de texto de DNS). Digite o seguinte texto na caixa de texto e escolha TXT Lookup (Pesquisa TXT) para executar a verificação. Não esqueça de substituir example.com pelo seu domínio.

_acme-challenge.example.com

7.    Se os registros TXT tiverem sido propagados para o DNS da Internet, você verá o valor do registro TXT na página. Agora você pode retornar para a tela e pressionar ENTER.

8.    Se for removido do shell, é possível retornar usando o comando screen -r SESSIONID. Obtenha o ID da sessão executando o comando screen -ls.

9.    Se o prompt do Certbot solicitar a adição de outro registro TXT, conclua as etapas 5 a 8 novamente.

10.    Depois que o certificado SSL for gerado com êxito, você receberá a mensagem “Certificado recebido com sucesso”.


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?