

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
<a name="amazon-lightsail-using-lets-encrypt-certificates-with-lamp"></a>

O Amazon Lightsail facilita a proteção de seus sites e aplicativos 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 1: Concluir os pré-requisitos](#complete-the-prerequisites-lets-encrypt-lamp)
+ [Etapa 2: instalar o Certbot em sua instância](#install-certbot-on-your-instance-lamp)
+ [Etapa 3: solicitar um certificado curinga SSL da Let’s Encrypt](#request-a-lets-encrypt-certificate-lamp)
+ [Etapa 4: adicionar registros TXT à zona DNS do domínio](#add-a-text-record-to-your-domains-dns-zone-lets-encrypt-lamp)
+ [Etapa 5: confirme se os registros TXT foram propagadas](#confirm-the-text-records-have-propagated-lets-encrypt-lamp)
+ [Etapa 6: conclua a solicitação de certificado SSL da Let’s Encrypt](#complete-the-lets-encrypt-certificate-request-lamp)
+ [Etapa 7: crie links para os arquivos do certificado da Let’s Encrypt no diretório do servidor Apache](#link-the-lets-encrypt-certificate-files-in-the-apache-directory-lamp)
+ [Etapa 8: configure o redirecionamento de HTTP para HTTPS para o aplicativo web](#configure-http-to-https-redirection-lamp)
+ [Etapa 9: renovar os certificados da Let's Encrypt a cada 90 dias](#renew-a-lets-encrypt-certificate-lamp)

## Etapa 1: Concluir os pré-requisitos
<a name="complete-the-prerequisites-lets-encrypt-lamp"></a>

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](how-to-create-amazon-lightsail-instance-virtual-private-server-vps.md).
+ Registre um nome de domínio e obtenha acesso administrativo para editar seus registros DNS. Para saber mais, consulte [Amazon Lightsail](understanding-dns-in-amazon-lightsail.md) 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](lightsail-how-to-create-dns-entry.md).
+ 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](lightsail-how-to-set-up-putty-to-connect-using-ssh.md).

Depois de ter concluído os pré-requisitos, prossiga para a [próxima seção](#install-certbot-on-your-instance-lamp) deste tutorial.

## Etapa 2: instale o Certbot em sua instância
<a name="install-certbot-on-your-instance-lamp"></a>

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 ACME-enabled cliente que interage com o Let's Encrypt.

**Para instalar o Certbot em sua instância do Lightsail**

1. Faça login no console do [Lightsail](https://lightsail.aws.amazon.com/).

1. No painel de navegação esquerdo, escolha o ícone de conexão rápida SSH da instância à qual você deseja se conectar.  
![Conexão rápida SSH na página inicial do Lightsail.](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/amazon-lightsail-lamp-ssh-quick-connect.png)

1. 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
   ```  
![Atualize os pacotes em sua instância.](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/amazon-lightsail-lamp-ssh-lets-encrypt-update-packages.png)

1. 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 comando `sudo 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.

1. 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
   ```

1. Digite o seguinte comando a seguir para atualizar apt para incluir o novo repositório:

   ```
   sudo apt-get update -y
   ```

1. 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.

1. 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](#request-a-lets-encrypt-certificate-lamp) deste tutorial.

## Etapa 3: solicitar um certificado curinga SSL da Let’s Encrypt
<a name="request-a-lets-encrypt-certificate-lamp"></a>

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**

1. Na mesma janela do terminal SSH baseado em navegador usada na [etapa 2](#install-certbot-on-your-instance-lamp) 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, {{Domain}} substitua pelo seu nome de domínio registrado.

   Exemplo:

   ```
   DOMAIN={{example.com}}
   ```

   ```
   WILDCARD=*.$DOMAIN
   ```

1. 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:  
![Confirme as variáveis de ambiente do domínio.](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/instances/lets-encrypt/bitnami-confirm-variables.png)

1. 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
   ```

1. Insira seu endereço de e-mail quando solicitado, porque ele é usado para renovação e notificações de segurança.

1. 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.

1. Responda adequadamente ao prompt para compartilhar seu endereço de e-mail e o aviso sobre o registro do seu endereço IP.

1. 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.  
![Registros TXT para certificados da Let's Encrypt.](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/instances/lets-encrypt/get-TXT-records.png)

1. Mantenha aberta a sessão SSH baseada no navegador Lightsail — você voltará a ela posteriormente neste tutorial. Prossiga para a [próxima seção](#add-a-text-record-to-your-domains-dns-zone-lets-encrypt-lamp) deste tutorial.

## Etapa 4: adicionar registros TXT à zona DNS do domínio
<a name="add-a-text-record-to-your-domains-dns-zone-lets-encrypt-lamp"></a>

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](lightsail-how-to-create-dns-entry.md) domínio no Lightsail.

**Para adicionar registros TXT à zona DNS do seu domínio no Lightsail**

1. No painel de navegação esquerdo, escolha **Domínios e DNS**.

1. Na seção **Zonas DNS** da página, escolha a zona DNS para o domínio especificado na solicitação de certificado Certbot.

1. No editor de zonas DNS, escolha a guia **DNS records** (Registros DNS).

1. Escolha **Adicionar registro**.

1. No menu suspenso **Record type** (Tipo de registro), escolha **TXT record** (Registro TXT).

1. 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 `{{_acme-challenge.example.com}}` subdomínio, então você só precisa entrar `{{_acme-challenge}}` na caixa de texto e o Lightsail adiciona a `.example.com` porção para você quando você salvar o registro.

1. Escolha **Salvar**.

1. Repita as etapas de 4 a 7 para adicionar o segundo conjunto de registros TXT especificado pela solicitação de certificado Let's Encrypt.

1. Mantenha a janela do navegador do console Lightsail aberta — você voltará a ela posteriormente neste tutorial. Prossiga para a [próxima seção](#confirm-the-text-records-have-propagated-lets-encrypt-lamp) deste tutorial.

## Etapa 5: confirme se os registros TXT foram propagadas
<a name="confirm-the-text-records-have-propagated-lets-encrypt-lamp"></a>

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**

1. Abra uma nova janela do navegador e acesse [https://mxtoolbox.com/TXTLookup.aspx](https://mxtoolbox.com/TXTLookup.aspx).

1. Insira o seguinte texto na caixa de texto.

   ```
   _acme-challenge.{{Domain}}
   ```

   {{Domain}}Substitua pelo seu nome de domínio registrado.

   Exemplo:

   ```
   _acme-challenge.{{example.com}}
   ```  
![Pesquisa de registro TXT do MXToolbox.](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/instances/lets-encrypt/mxtoolbox-text-record-lookup.png)

1. Escolha **Pesquisa de TXT** para executar a verificação.

1. 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](#complete-the-lets-encrypt-certificate-request-lamp) deste tutorial.  
![Confirmação de que registros TXT foram propagados.](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/instances/lets-encrypt/mxtoolbox-propagated-text-record-lookup.png)
   + 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
<a name="complete-the-lets-encrypt-certificate-request-lamp"></a>

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**

1. 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á:  
![Solicitação de certificado Let's Encrypt bem-sucedida.](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/instances/lets-encrypt/bitnami-certificate-request-success.png)

   A mensagem confirma que seus arquivos de certificado, cadeia e chave estão armazenados no `/etc/letsencrypt/live/{{Domain}}/` diretório. {{Domain}}será seu nome de domínio registrado, como`/etc/letsencrypt/live/{{example.com}}/`.

1. Anote a data de expiração especificada na mensagem. Você pode usá-la para renovar seu certificado até essa data.  
![Data de renovação do certificado da Let's Encrypt.](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/instances/lets-encrypt/certificate-renewal-date.png)

1. Agora que você tem o certificado SSL da Let’s Encrypt, prossiga para a [próxima seção](#link-the-lets-encrypt-certificate-files-in-the-apache-directory-lamp) deste tutorial.

## Etapa 7: crie links para os arquivos do certificado da Let’s Encrypt no diretório do servidor Apache
<a name="link-the-lets-encrypt-certificate-files-in-the-apache-directory-lamp"></a>

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**

1. 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:  
![Serviços da instância parados.](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/amazon-lightsail-ssh-stop-services.png)

1. Digite o comando a seguir para definir uma variável de ambiente para o seu domínio.

   ```
   DOMAIN={{Domain}}
   ```

   No comando, {{Domain}} substitua pelo seu nome de domínio registrado.

   Exemplo:

   ```
   DOMAIN={{example.com}}
   ```

1. Digite o seguinte comando para confirmar que as variáveis retornarão os valores corretos:

   ```
   echo $DOMAIN
   ```

   Será exibido um resultado semelhante ao seguinte:  
![Confirme a variável de ambiente do domínio.](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/instances/lets-encrypt/bitnami-confirm-domain-variable.png)

1. 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 Self-contained Bitnami):

     ```
     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
     ```

1. 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 Self-contained Bitnami):

     ```
     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
     ```

1. 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:  
![Serviços da instância iniciadas.](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/amazon-lightsail-ssh-start-services.png)

   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.

1. Prossiga para a [próxima seção](#configure-http-to-https-redirection-lamp) deste tutorial.

## Etapa 8: configure o redirecionamento de HTTP para HTTPS para o aplicativo web
<a name="configure-http-to-https-redirection-lamp"></a>

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 a aplicação web**

1. 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.

1. Pressione `i` para entrar no modo de inserção no editor Vim.

1. 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:  
![Arquivo de configuração do Apache editado para redirecionamento de HTTP para HTTPS.](http://docs.aws.amazon.com/pt_br/lightsail/latest/userguide/images/amazon-lightsail-lamp-ssh-lets-encrypt-apache-config-file.png)

1. Pressione a tecla **ESC** e, em seguida, insira `:wq` para gravar (salvar) as edições e saia do Vim.

1. 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ço `https://www.example.com`.

## Etapa 9: renovar os certificados da Let's Encrypt a cada 90 dias
<a name="renew-a-lets-encrypt-certificate-lamp"></a>

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](#request-a-lets-encrypt-certificate-lamp) deste tutorial.