Como renovo um certificado SSL Let's Encrypt em uma pilha Bitnami hospedada em uma instância do Lightsail?
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”.
Conteúdo relevante
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 3 anos