As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Habilite HTTPS em sua instância Nginx com Let's Encrypt e Certbot
O Amazon Lightsail facilita a proteção de seus sites e aplicativos com o SSL/TLS uso dos balanceadores de carga Lightsail. No entanto, usar um balanceador de carga Lightsail geralmente não é a escolha certa. Talvez seu site não precise da escalabilidade ou da tolerância a falhas que os load balancers fornecem, ou talvez você esteja otimizando pelo custo.
No último caso, você pode considerar o uso do Let's Encrypt para obter um certificado SSL gratuito. Se esse for o caso, não há problema. Você pode integrar esses certificados às instâncias do Lightsail. Este tutorial mostra como solicitar um certificado curinga Let's Encrypt usando o Certbot e integrá-lo à sua instância do Nginx.
Índice
Etapa 1: Concluir os pré-requisitos
Preencha os seguintes pré-requisitos, caso ainda não tenha feito isso:
-
Crie uma instância do Nginx no Lightsail. Para saber mais, consulte Criar uma instância.
-
Registre um nome de domínio e obtenha acesso administrativo para editar seus registros DNS. Para saber mais, consulte DNS.
nota
Recomendamos que você gerencie os registros DNS do seu domínio usando uma zona DNS do Lightsail. Para saber mais, consulte Criar uma zona DNS para gerenciar os registros DNS do seu domínio.
-
Use o terminal SSH baseado em navegador no console do Lightsail para realizar as etapas deste tutorial. No entanto, você também pode usar seu próprio cliente SSH, como o PuTTY. Para saber mais sobre como configurar o PuTTY, consulte Baixar e configurar o PuTTY para se conectar usando SSH no Amazon Lightsail.
Etapa 2: instalar o Certbot na sua instância do Lightsail
O Certbot é um cliente usado para solicitar um certificado do Let's Encrypt e implantá-lo em um servidor web. O Let's Encrypt usa o protocolo ACME para emitir certificados, e o Certbot é um ACME-enabled cliente que interage com o Let's Encrypt.
Para instalar o Certbot em sua instância do Lightsail
-
Faça login no console do Lightsail
. -
Na guia Instâncias da página inicial do Lightsail, escolha o ícone de conexão rápida SSH para a instância à qual você deseja se conectar.
-
Depois que sua sessão SSH baseada no navegador Lightsail estiver conectada, insira o seguinte comando para atualizar os pacotes na sua instância:
sudo apt-get update -
Insira o comando a seguir para instalar o pacote de propriedades de software. Os desenvolvedores do Certbot usam um Personal Package Archive (PPA) para distribuir o Certbot. O pacote de propriedades de software torna o trabalho com PPAs mais eficiente.
sudo apt-get install software-properties-common -y -
Digite o seguinte comando a seguir para atualizar apt para incluir o novo repositório:
sudo apt-get update -y -
Insira o comando a seguir para instalar o Certbot:
sudo apt-get install certbot -yO Certbot agora está instalado na sua instância do Lightsail.
Etapa 3: solicitar um certificado curinga SSL da Let’s Encrypt
Comece o processo de solicitação de um certificado do Let's Encrypt. Usando o Certbot, solicite um certificado curinga, que permite que você use um único certificado para um domínio e seus subdomínios. Por exemplo, um único certificado curinga funciona para o domínio de nível superior example.com e os subdomínios blog.example.com e stuff.example.com.
Para solicitar um certificado curinga SSL Let's Encrypt
-
Na mesma janela de terminal SSH baseada em navegador usada na etapa anterior deste tutorial, insira os comandos a seguir para definir uma variável de ambiente para seu domínio. Lembre-se de substituir
domainpelo nome do seu nome de registro registrado.DOMAIN=domainWILDCARD=*.$DOMAINExemplo:
DOMAIN=example.com WILDCARD=*.$DOMAIN -
Digite o seguinte comando para confirmar que as variáveis retornarão os valores corretos:
echo $DOMAIN && echo $WILDCARDSerá exibido um resultado semelhante ao seguinte:
-
Digite o seguinte comando para iniciar o Certbot no modo interativo. Esse comando informa ao Certbot para usar um método de autorização manual com desafios de DNS para verificar a propriedade do domínio. Ele solicita um certificado curinga para seu domínio de nível superior, bem como seus subdomínios.
sudo certbot -d $DOMAIN -d $WILDCARD --manual --preferred-challenges dns certonly -
Insira seu endereço de e-mail quando solicitado, pois ele é usado para avisos de renovação e segurança.
-
Leia os termos de serviço do Let's Encrypt. Ao concluir, pressione A se você concorda. Se você discordar, não poderá obter um certificado Let's Encrypt.
-
Responda adequadamente ao prompt para compartilhar seu endereço de e-mail e o aviso sobre o registro do seu endereço IP.
-
O Let's Encrypt agora solicita que você verifique se você é proprietário do domínio especificado. Você pode fazer isso adicionando registros TXT para os registros DNS para seu domínio. Um conjunto de valores de registro TXT é fornecido conforme mostrado no seguinte exemplo:
nota
A Let's Encrypt pode fornecer um ou vários registros TXT que devem ser usados para verificação. Neste exemplo, recebemos dois registros TXT para usar na verificação.
Etapa 4: adicionar registros TXT à zona DNS do domínio
A adição de um registro TXT à zona DNS do seu domínio verifica se você possui o domínio. Para fins de demonstração, usamos a zona DNS do Lightsail. No entanto, as etapas podem ser semelhantes para outras zonas de DNS normalmente hospedadas por registradores de domínios.
nota
Para saber mais sobre como criar uma zona DNS do Lightsail para seu domínio, consulte Criação de uma zona DNS para gerenciar os registros DNS do seu domínio no Lightsail.
Para adicionar registros TXT à zona DNS do seu domínio no Lightsail
-
No painel de navegação esquerdo, escolha Domínios e DNS.
-
Na seção Zonas DNS da página, escolha a zona DNS para o domínio especificado na solicitação de certificado Certbot.
-
No editor de zonas DNS, escolha a guia DNS records (Registros DNS).
-
Escolha Adicionar registro.
-
No menu suspenso Record type (Tipo de registro), escolha TXT record (Registro TXT).
-
Insira os valores especificados pela solicitação de certificado Let's Encrypt nos campos Record name (Nome do registro) e Responds with (Responde com).
nota
O console Lightsail preenche previamente a parte do ápice do seu domínio. Por exemplo, se você deseja adicionar o
subdomínio, então você só precisa entrar_acme-challenge.example.comna caixa de texto e o Lightsail adiciona a_acme-challenge.example.comporção para você quando você salvar o registro. -
Escolha Salvar.
-
Repita as etapas de 4 a 7 para adicionar o segundo conjunto de registros TXT especificado pela solicitação de certificado Let's Encrypt.
-
Mantenha a janela do navegador do console Lightsail aberta — você voltará a ela posteriormente neste tutorial. Continue na próxima seção deste tutorial.
Etapa 5: confirme se os registros TXT foram propagadas
Use o MxToolbox utilitário para confirmar se os registros TXT foram propagados para o DNS da Internet. A propagação de registro DNS pode demorar um pouco, dependendo do provedor de hospedagem de DNS configurado e a vida útil (TTL) para seus registros DNS. É importante que você conclua esta etapa e confirme se os registros TXT foram propagados antes de continuar sua solicitação de certificado Certbot. Caso contrário, a solicitação de certificado falhará.
Para confirmar que os registros TXT foram propagados para o DNS da Internet
-
Abra uma nova janela do navegador e acesse https://mxtoolbox.com/TXTLookup.aspx
. -
Insira o seguinte texto na caixa de texto. Substitua
pelo seu domínio.domain_acme-challenge.domainExemplo:
_acme-challenge.example.com
-
Escolha Pesquisa de TXT para executar a verificação.
-
Uma das seguintes respostas ocorre:
-
Se os registros TXT tiverem sido propagados para o DNS da Internet, você verá uma resposta semelhante à mostrada na captura de tela a seguir. Feche a janela do navegador e prossiga para a próxima seção deste tutorial.
-
Se os registros TXT não tiverem sido propagados para o DNS da Internet, você verá uma resposta DNS Record not found (Registro DNS não encontrado). Confirme se você adicionou os registros DNS corretos para a zona DNS dos seus domínios. Se você adicionou os registros corretos, aguarde um pouco mais tempo para permitir que os registros de DNS do seu domínio TXT sejam propagados e execute a pesquisa novamente.
-
Etapa 6: conclua a solicitação de certificado SSL da Let’s Encrypt
Volte para a sessão SSH baseada no navegador Lightsail para sua instância e conclua a solicitação de certificado Let's Encrypt. O Certbot salva seus arquivos de certificado, cadeia e chave SSL em um diretório específico na sua instância.
Para concluir a solicitação de certificado SSL da Let’s Encrypt
-
Na sessão SSH baseada no navegador Lightsail para sua instância, pressione Enter para continuar sua solicitação de certificado SSL Let's Encrypt. Se bem-sucedido, uma resposta semelhante à mostrada na captura de tela a seguir aparecerá:
A mensagem confirma que os arquivos de certificado, de cadeia e de chave estão armazenados no diretório
/etc/letsencrypt/live/. Substituadomain/pelo seu domínio, comodomain/etc/letsencrypt/live/.example.com/ -
Anote a data de expiração especificada na mensagem. Você pode usá-la para renovar seu certificado até essa data.
Etapa 7: atualizar a configuração SSL no Nginx e redirecionar o tráfego de HTTP para HTTPS
Para atualizar a configuração SSL no default.conf do Nginx
-
Na sessão SSH da sua instância Nginx, digite o seguinte comando para interromper os serviços subjacentes:
sudo systemctl stop nginx sudo systemctl stop mariadb sudo systemctl stop php8.2-fpmVocê verá uma resposta semelhante à seguinte:
-
Digite o comando a seguir para definir uma variável de ambiente para o seu domínio. Você pode copiar e colar comandos de forma mais eficiente para vincular os arquivos de certificado. Lembre-se de substituir
pelo nome do seu registro registrado.domainDOMAIN=domainExemplo:
DOMAIN=example.com -
Digite o seguinte comando para confirmar que as variáveis retornarão os valores corretos:
echo $DOMAINSerá exibido um resultado semelhante ao seguinte:
-
Execute o comando abaixo para alterar a configuração do SSL:
nota
Se você fechou a janela do terminal SSH baseado no navegador desde a configuração da
DOMAINvariável na Etapa 3, executeDOMAIN=novamente,example.comexample.comsubstituindo pelo seu domínio.sudo sed \ -i -e "s|ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem|ssl_certificate /etc/letsencrypt/live/$DOMAIN/fullchain.pem|g" \ -i -e "s|ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key|ssl_certificate_key /etc/letsencrypt/live/$DOMAIN/privkey.pem|g" \ /etc/nginx/conf.d/default.conf -
Depois de sobrescrever o
default.confarquivo, execute os comandos abaixo para verificar a configuração e reiniciar o Nginxsudo nginx -t sudo systemctl restart nginx sudo systemctl restart mariadb sudo systemctl restart php8.2-fpmSerá exibido um resultado semelhante ao seguinte:
Sua instância Nginx agora está configurada para usar criptografia SSL e o tráfego é redirecionado de HTTP para HTTPS
Etapa 8: renove os certificados do Let's Encrypt a cada 90 dias
Os certificados da Let's Encrypt são válidos por 90 dias. Os certificados podem ser renovados 30 dias antes da data de expiração. Para renovar o certificado Let's Encrypt, repita a Etapa 3: Solicitar um certificado curinga SSL do Let's Encrypt.