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á.
Proteja sua instância LAMP do Lightsail com certificados SSL Let's Encrypt
O Amazon Lightsail facilita a proteção de seus sites e aplicativos com SSL/TLS usando 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 da Let’s Encrypt usando Certbot e integre-o com sua instância do LAMP.
Importante
-
A distribuição Linux usada por instâncias da Bitnami foi alterada de Ubuntu para Debian em julho de 2020. Devido a essa alteração, algumas das etapas neste tutorial serão diferentes dependendo da distribuição Linux de sua instância. Todas as instâncias de esquema Bitnam criadas após a alteração usam a distribuição Debian Linux. Instâncias criadas antes da alteração continuarão a usar a distribuição Ubuntu Linux. Para verificar a distribuição de sua instância, execute o
uname -a
comando. A resposta mostrará Ubuntu ou Debian como a distribuição Linux da sua instância. -
O Bitnami está em processo modificação da estrutura de arquivos para muitas de suas pilhas. Os caminhos de arquivo neste tutorial podem mudar dependendo de sua pilha Bitnami usar pacotes nativos do sistema Linux (Abordagem A) ou ser uma instalação autocontida (Abordagem B). Para identificar seu tipo de instalação Bitnami e qual abordagem seguir, execute o seguinte comando:
test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."
Índice
-
Etapa 3: solicitar um certificado curinga SSL da Let’s Encrypt
-
Etapa 6: conclua a solicitação de certificado SSL da Let’s Encrypt
-
Etapa 7: crie links para os arquivos do certificado da Let’s Encrypt no diretório do servidor Apache
-
Etapa 8: configure o redirecionamento de HTTP para HTTPS para o aplicativo web
-
Etapa 9: renovar os certificados da Let's Encrypt a cada 90 dias
Etapa 1: Concluir os pré-requisitos
Conclua os seguintes pré-requisitos, se ainda não concluiu:
-
Crie uma instância LAMP 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 Amazon Lightsail DNS.
nota
Recomendamos que você gerencie os registros DNS do seu domínio usando uma zona DNS do Lightsail. Para saber mais, consulte Creating a DNS zone to manage your domain’s DNS records.
-
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.
Depois de ter concluído os pré-requisitos, prossiga para a próxima seção deste tutorial.
Etapa 2: instale o Certbot em sua instância
O Certbot é um cliente usado para solicitar um certificado do Let’s Encrypt e implante-o em um servidor web. O Let’s Encrypt usa o protocolo ACME para emitir certificados e o Certbot é um cliente habilitado para ACME 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 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 usar um Personal Package Archive (PPA) para distribuir p Certbot. O pacote de propriedades de software torna o trabalho com PPAs mais eficiente.
sudo apt-get install software-properties-common
nota
Se você encontrar o erro
Could not get lock
ao executar o comandosudo apt-get install
, aguarde aproximadamente 15 minutos e tente novamente. Esse erro pode ser causado por um trabalho cron que está usando a ferramenta de gerenciamento de pacotes Apt para instalar atualizações automáticas. -
Digite o seguinte comando para adicionar o Certbot ao repositório apt local:
nota
A etapa 5 se aplica somente a instâncias que usam a distribuição Ubuntu Linux. Ignore este passo se a sua instância usa a distribuição Debian Linux.
sudo apt-add-repository ppa:certbot/certbot -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 -y
O Certbot agora está instalado na sua instância do Lightsail.
-
Mantenha aberta a janela do terminal SSH com base em navegador — você retornará a ela mais tarde neste tutorial. Prossiga para a próxima seção deste tutorial.
Etapa 3: solicitar um certificado curinga SSL da Let’s Encrypt
Inicie o processo de solicitação de um certificado da 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 da Let’s Encrypt
-
Na mesma janela do terminal SSH baseado em navegador usada na etapa 2 deste tutorial, insira os comandos a seguir para definir uma variável de ambiente para o domínio. Agora, você pode copiar e colar comandos de forma mais eficiente para obter o certificado.
DOMAIN=
Domain
WILDCARD=*.$DOMAIN
No comando, substitua
Domain
pelo nome de domínio registrado.Exemplo:
DOMAIN=
example.com
WILDCARD=*.$DOMAIN
-
Digite o seguinte comando para confirmar que as variáveis retornarão os valores corretos:
echo $DOMAIN && echo $WILDCARD
Será 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, porque ele é usado para renovação e notificações de segurança.
-
Leia os termos de serviço da Let’s Encrypt. Ao concluir, pressione A se você concorda. Se discordar, você não poderá obter um certificado da Let’s Encrypt.
-
Responda adequadamente à solicitação para compartilhar seu endereço de e-mail e o aviso sobre o registro do seu endereço IP.
-
A Let’s Encrypt agora solicitará que você verifique se é o 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.
-
Mantenha aberta a sessão SSH baseada no navegador Lightsail — você voltará a ela posteriormente neste tutorial. Prossiga para a próxima seção deste tutorial.
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
-
Na página inicial do Lightsail, escolha a guia Domains & DNS (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.com
na caixa de texto e o Lightsail adiciona a_acme-challenge
.example.com
porçã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. Prossiga para a 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.
_acme-challenge.
Domain
Substitua
Domain
pelo nome de domínio registrado.Exemplo:
_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 LAMP e conclua a solicitação de certificado Let's Encrypt. O Certbot salva seus arquivos de certificado SSL, cadeia e chave em um diretório específico em sua instância do LAMP.
Para concluir a solicitação de certificado SSL da Let’s Encrypt
-
Na sessão SSH baseada no navegador Lightsail para sua instância LAMP, 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/
.Domain
/Domain
será o nome de domínio registrado, como/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.
-
Agora que você tem o certificado SSL da Let’s Encrypt, prossiga para a próxima seção deste tutorial.
Etapa 7: crie links para os arquivos do certificado da Let’s Encrypt no diretório do servidor Apache
Crie links para os arquivos de certificado SSL Let’s Encrypt no diretório do servidor Apache em sua instância LAMP. Além disso, faça backup de seus certificados existentes, caso precise deles mais tarde.
Criar links para os arquivos do certificado da Let’s Encrypt no diretório do servidor Apache
-
Na sessão SSH baseada no navegador Lightsail para sua instância LAMP, digite o seguinte comando para interromper os serviços de pilha LAMP subjacentes:
sudo /opt/bitnami/ctlscript.sh stop
Você verá uma resposta semelhante à seguinte:
-
Digite o comando a seguir para definir uma variável de ambiente para o seu domínio.
DOMAIN=
Domain
No comando, substitua
Domain
pelo nome de domínio registrado.Exemplo:
DOMAIN=
example.com
-
Digite o seguinte comando para confirmar que as variáveis retornarão os valores corretos:
echo $DOMAIN
Será exibido um resultado semelhante ao seguinte:
-
Insira os seguintes comandos individualmente para renomear seus arquivos de certificado existentes como backups. Consulte o bloco Important (Importante) no início deste tutorial para obter informações sobre as diferentes distribuições e estruturas de arquivos.
-
Para distribuições Debian Linux
Abordagem A (instalações Bitnami usando pacotes do sistema):
sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.old
Abordagem B (instalações Bitnami autocontidas):
sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old
sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old
-
Para instâncias mais antigas que usam a distribuição Ubuntu Linux:
sudo mv /opt/bitnami/apache/conf/bitnami/certs/server.crt /opt/bitnami/apache/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/apache/conf/bitnami/certs/server.key /opt/bitnami/apache/conf/bitnami/certs/server.key.old
-
-
Insira os seguintes comandos individualmente para criar links para os arquivos do certificado Let’s Encrypt no diretório apache2 server. Consulte o bloco Important (Importante) no início deste tutorial para obter informações sobre as diferentes distribuições e estruturas de arquivos.
-
Para distribuições Debian Linux
Abordagem A (instalações Bitnami usando pacotes do sistema):
sudo ln -sf /etc/letsencrypt/live/$DOMAIN/privkey.pem /opt/bitnami/apache2/conf/bitnami/certs/server.key
sudo ln -sf /etc/letsencrypt/live/$DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/bitnami/certs/server.crt
Abordagem B (instalações Bitnami autocontidas):
sudo ln -sf /etc/letsencrypt/live/$DOMAIN/privkey.pem /opt/bitnami/apache2/conf/server.key
sudo ln -sf /etc/letsencrypt/live/$DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/server.crt
-
Para instâncias mais antigas que usam a distribuição Ubuntu Linux:
sudo ln -s /etc/letsencrypt/live/$DOMAIN/privkey.pem /opt/bitnami/apache/conf/bitnami/certs/server.key
sudo ln -s /etc/letsencrypt/live/$DOMAIN/fullchain.pem /opt/bitnami/apache/conf/bitnami/certs/server.crt
-
-
Digite o seguinte comando para iniciar os serviços da pilha do LAMP subjacentes que você tinha interrompido anteriormente:
sudo /opt/bitnami/ctlscript.sh start
Será exibido um resultado semelhante ao seguinte:
Sua instância do LAMP agora está configurada para usar a criptografia SSL. No entanto, o tráfego não é automaticamente redirecionado de HTTP para HTTPS.
-
Prossiga para a próxima seção deste tutorial.
Etapa 8: configure o redirecionamento de HTTP para HTTPS para o aplicativo web
Você pode configurar um redirecionamento de HTTP para HTTPS para sua instância do LAMP. O redirecionamento automático do HTTP para HTTPS torna seu site acessível somente por seus clientes usando SSL, mesmo quando eles se conectam usando HTTP.
Configurar o redirecionamento de HTTP para HTTPS para o aplicativo web
-
Na sessão SSH baseada no navegador Lightsail para sua instância LAMP, digite o seguinte comando para editar o arquivo de configuração do servidor web Apache usando o editor de texto Vim:
sudo vim /opt/bitnami/apache2/conf/bitnami/bitnami.conf
nota
Este tutorial usa Vim para fins de demonstração; no entanto, você pode usar qualquer editor de texto de sua preferência para esta etapa.
-
Pressione
i
para entrar no modo de inserção no editor Vim. -
No arquivo, insira o seguinte texto entre
DocumentRoot "/opt/bitnami/apache2/htdocs"
e<Directory "/opt/bitnami/apache2/htdocs">
:RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
O resultado deve ser algo semelhante a:
-
Pressione a tecla ESC e, em seguida, insira
:wq
para gravar (salvar) as edições e saia do Vim. -
Digite o seguinte comando para reiniciar os serviços da pilha do LAMP subjacentes e efetive suas edições:
sudo /opt/bitnami/ctlscript.sh restart
Sua instância do LAMP agora está configurada para redirecionar automaticamente as conexões de HTTP para HTTPS. Quando um visitante vai para
http://www.example.com
, ele é automaticamente redirecionado para o endereçohttps://www.example.com
.
Etapa 9: renovar os certificados da 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 os certificados Let's Encrypt, execute o comando original usado para obtê-los. Repita as etapas da seção Solicitar um certificado curinga SSL da Let’s Encrypt deste tutorial.