Como faço para renovar um certificado SSL da Let's Encrypt em uma pilha Bitnami hospedada em uma instância do Lightsail?
O certificado SSL da Let's Encrypt instalado em meu site em uma instância Bitnami do Amazon Lightsail está prestes a expirar.
Breve descrição
Os certificados SSL da Let's Encrypt expiram 90 dias após a criação. Se você instalou um certificado da Let's Encrypt padrão seguindo as etapas fornecidas em Como faço para instalar um certificado SSL da Let's Encrypt em uma pilha Bitnami hospedada no Lightsail?, em seguida, o certificado SSL é renovado automaticamente. No entanto, a renovação automática pode falhar se não estiver configurada corretamente.
Se você instalou um certificado curinga da Let's Encrypt pelo método 2 em Como faço para instalar um certificado SSL curinga da Let's Encrypt em uma pilha Bitnami hospedada no Amazon Lightsail?, então você precisa renovar o certificado manualmente. O método 2 não oferece suporte à renovação automática.
A resolução a seguir aborda como renovar um certificado manualmente em instâncias do Lightsail hospedadas pela Bitnami, como WordPress, LAMP, Magento e MEAN.
Resolução
Identifique a ferramenta de instalação do certificado
Identifique a ferramenta que você usou para instalar o certificado. Para identificar a ferramenta que você usou para instalar o certificado SSL, faça o seguinte:
-
Execute o comando a seguir para pesquisar o arquivo de certificado nos diretórios /etc/letsencrypt e /opt/bitnami/letsencrypt. Certifique-se de substituir DOMAIN pelo 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
-
Se o arquivo do certificado estiver dentro dos subdiretórios de /opt/bitnami/letsencrypt, o certificado provavelmente foi instalado com bncert-tool ou o cliente Lego. Para fazer 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 segundo comando, seu certificado foi instalado com bncert-tool ou Lego.
Se o arquivo do certificado estiver dentro dos subdiretórios de /etc/letsencrypt, então o certificado provavelmente foi instalado com o Certbot. Para fazer 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 certbot, seu certificado foi instalado com o Certbot.
Com base na ferramenta identificada, siga as etapas de resolução relacionadas.
Renove um certificado da Let's Encrypt instalado com bncert-tool ou a ferramenta 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
Para todos os comandos, substitua EMAIL-ADDRESS e DOMAIN pelos valores corretos. Para EMAIL-ADDRESS, use qualquer um dos seus endereços de e-mail ativos. Ou você usa o mesmo endereço de e-mail usado ao instalar o certificado. Você pode recuperar o e-mail usado para instalar o certificado com o seguinte comando:
sudo ls /opt/bitnami/letsencrypt/accounts/acm*
Se necessário, confirme o nome do domínio com o seguinte comando:
sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt list
Renove um certificado da Let's Encrypt instalado com a ferramenta Certbot
Execute o comando a seguir para determinar o método de autenticação usado para instalar o certificado. Substitua DOMAIN pelo nome de domínio principal do seu certificado:
sudo cat /etc/letsencrypt/renewal/DOMAIN.conf
Na saída do comando, veja o valor do parâmetro authenticator. Com base no valor, siga um dos seguintes métodos de renovação:
Se o valor do parâmetro authenticator for standalone, webroot, apache, nginx, dns-route53 ou outro valor que não seja manual, conclua a renovação com os seguintes comandos:
sudo /opt/bitnami/ctlscript.sh stop sudo certbot renew sudo /opt/bitnami/ctlscript.sh start
Esses comandos renovam todos os certificados instalados que devem ser renovados.
- ou -
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. Você deve renová-lo manualmente seguindo as etapas a seguir. Observação: você deve repetir essa etapa sempre que renovar o certificado.
-
Esse método exige que você adicione registros TXT no provedor DNS do domínio. É uma prática recomendada executar os comandos no Linux GNU Screen para evitar que a sessão atinja o tempo limite. Para obter mais informações, consulte How to use Linux Screen.
Para iniciar uma sessão de tela, digite o seguinte comando:screen -S letsencrypt
-
Execute o comando a seguir e procure o valor do parâmetro Domains. Substitua DOMAIN pelo nome de domínio principal do seu certificado:
sudo certbot certificates -d DOMAIN
-
Execute o comando a seguir para renovar o certificado. Certifique-se de incluir cada domínio que você encontrou no comando anterior com a opção**-d** na mesma ordem. Se você adicionar, remover ou alterar a ordem dos domínios, um novo certificado poderá ser criado em vez de renovar o certificado original.
sudo certbot certonly --manual --preferred-challenge dns -d DOMAIN-1 -d DOMAIN-2 --force-renewal
-
Você recebe uma solicitação para verificar se você é o proprietário do domínio especificado. Essa verificação serve para adicionar registros TXT aos registros DNS do seu domínio. A Let's Encrypt fornece um único ou vários registros TXT que você deve usar para verificação.
-
Ao ver um registro TXT na tela, adicione o registro fornecido no DNS do seu domínio.
Importante: não pressione Enter até confirmar que o registro TXT foi propagado para o DNS da Internet. Não pressione CTRL+D porque isso encerra a sessão de tela atual. -
Para confirmar se o registro TXT foi propagado para o DNS da Internet, consulte-o em DNS Text Lookup no site da MX Toolbox. Digite o texto a seguir na caixa de texto e escolha TXT Lookup para executar a verificação. Substitua exemplo.com pelo seu nome de domínio:
_acme-challenge.example.com
-
Se seus registros TXT foram propagados para o DNS da Internet, você verá o valor do registro TXT na página. Agora você pode retornar à tela e pressionar ENTER.
-
Se você for removido do shell, retorne por meio do comando screen -r SESSIONID. Execute o comando screen -ls para obter o ID da sessão.
-
Se o prompt do Certbot solicitar que você adicione outro registro TXT, conclua as etapas 5 a 8 novamente.
-
Depois que o certificado SSL for gerado com sucesso, você receberá a mensagem “Certificado recebido com sucesso”.
Conteúdo relevante
- AWS OFICIALAtualizada há 6 meses
- AWS OFICIALAtualizada há 10 meses
- AWS OFICIALAtualizada há 6 meses
- AWS OFICIALAtualizada há 8 meses