O cadeado que aparece junto ao endereço de um site significa que a ligação vai cifrada e que o site é quem diz ser. Sem ele, os navegadores avisam "site não seguro", o Google posiciona pior e os formulários viajam às claras. Há anos um certificado custava dinheiro e papelada; hoje o Let's Encrypt dá-os de graça e renovam-se sozinhos.
Numa máquina Lightsail há duas situações. Se a criou a partir de um modelo de aplicação (WordPress, Joomla, LAMP...), é uma imagem da Bitnami e traz uma ferramenta que faz tudo com umas perguntas. Se é um Linux "nu" (Ubuntu, Debian, Amazon Linux) onde instalou você o servidor web, vai usar o Certbot, que também é simples. O guia cobre as duas.
Antes de começar: o que significa cada coisa
- HTTPS e certificado
- HTTPS é a versão segura do HTTP, a forma como o navegador fala com o seu site. Para a usar, o site precisa de um certificado: um ficheiro que prova que o domínio é seu e permite cifrar a ligação.
- Let's Encrypt
- Uma entidade sem fins lucrativos que emite certificados de graça. Duram 90 dias e renovam-se automaticamente com um programa.
- Certbot
- O programa mais usado para pedir e instalar certificados do Let's Encrypt num servidor Linux.
- Bitnami
- A empresa que prepara os modelos de aplicações do Lightsail (WordPress, etc.). As suas máquinas trazem uma ferramenta própria, bncert-tool, para o certificado.
- Apache e Nginx
- Os dois servidores web mais comuns: o programa dentro da máquina que entrega as páginas ao navegador. O certificado instala-se nele.
- Porta 443
- A "porta" por onde entra o tráfego HTTPS. A firewall do Lightsail deve tê-la aberta.
- SSH / terminal do navegador
- A forma de dar ordens à máquina escrevendo comandos. No Lightsail pode abri-lo com um botão na consola, sem instalar nada.
- Registo A
- A entrada do DNS que faz com que o seu domínio aponte para o IP da máquina. O Let's Encrypt verifica-o antes de dar o certificado.
Passo a passo
Verifique o domínio e a firewall
Dois requisitos sem os quais nada vai funcionar. Primeiro, o domínio tem de apontar já para o IP da máquina (e convém que seja um IP estático): escreva o domínio no navegador e deve carregar o seu site, mesmo que sem cadeado. Segundo, no Lightsail, separador Rede da máquina, a firewall deve ter abertos HTTP (80) e HTTPS (443). A 443 não vem aberta por defeito: adicione-a se faltar.
Abra o terminal da máquina
Na consola do Lightsail, clique no botão Ligar através de SSH da máquina (o ícone de terminal cor de laranja). Abre-se uma janela preta no navegador onde vai escrever os comandos dos passos seguintes. Não é preciso instalar nenhum programa no seu computador.
Se a sua máquina é Bitnami: use a ferramenta dela
Escreva:
sudo /opt/bitnami/bncert-toolVai perguntar-lhe os domínios (escreva
midominio.com www.midominio.com), se quer redirecionar HTTP para HTTPS (diga que sim) e se quer que www redirecione para o domínio sem www ou ao contrário (escolha um). No fim pede um e-mail para os avisos do Let's Encrypt e que aceite as condições. Reinicia os serviços por si. Quando termina, o certificado está posto e a renovação agendada. Passe ao passo 5.Se a sua máquina é um Linux normal: use o Certbot
Em Ubuntu ou Debian com Apache:
sudo apt update sudo apt install -y certbot python3-certbot-apache sudo certbot --apache -d midominio.com -d www.midominio.comCom Nginx, troque
python3-certbot-apacheporpython3-certbot-nginxe--apachepor--nginx. O Certbot pede-lhe um e-mail, que aceite as condições e se quer redirecionar todo o tráfego para HTTPS (diga que sim). Ele próprio altera a configuração do servidor web e recarrega-o. No Amazon Linux os nomes dos pacotes mudam; a documentação do Certbot tem as instruções exatas para cada sistema.Verifique o cadeado
Abra
https://midominio.comno navegador: deve aparecer o cadeado e, ao clicar nele, um certificado emitido pelo Let's Encrypt (aparece como "R3", "R10" ou outro nome curto). Teste também a versão sem https: deve redirecionar sozinha para a segura. Se usa WordPress, veja em Definições, Geral que os dois endereços começam por https.Confirme que se renovará sozinho
Os certificados do Let's Encrypt expiram aos 90 dias, mas tanto o bncert-tool como o Certbot deixam agendada a renovação automática. Para ficar descansado, no terminal:
sudo certbot renew --dry-run(Na Bitnami, o equivalente é confirmar que a tarefa existe em
sudo crontab -l.) Se o ensaio termina sem erros, não vai ter de voltar a mexer nisto. O Let's Encrypt envia-lhe um e-mail se alguma vez a renovação falhar.
O que pode correr mal
Diz que não consegue verificar o domínio
Ou o domínio ainda não aponta para esta máquina (espere que o DNS propague), ou a porta 80 está fechada na firewall do Lightsail. O Let's Encrypt precisa de chegar ao seu site pela porta 80 para confirmar que é seu.
Há cadeado mas o navegador avisa de "conteúdo misto"
A página carrega imagens ou scripts com endereços http://. No WordPress, mude os endereços do site para https em Definições e, se for preciso, use um plugin que reescreva os URL antigos. Num site feito à mão, corrija as ligações.
Funciona sem www mas não com www (ou ao contrário)
Falta um dos dois nomes no certificado ou no DNS. Repita o comando incluindo os dois com -d, e confirme que www tem o seu registo no DNS.
Fiquei sem acesso depois de mexer na firewall
A firewall do Lightsail arranja-se a partir da consola, não a partir da máquina. Volte ao separador Rede e reveja as regras. O terminal do navegador funciona sempre.
No Simplio
No Simplio pode lançar a instalação do certificado do Let's Encrypt numa máquina Lightsail a partir do catálogo de scripts, escrevendo só o domínio: o Simplio entra com a chave temporária que a AWS dá, executa os passos e devolve-lhe o resultado, sem deixar nada instalado. E avisa-o por e-mail se um certificado estiver prestes a expirar sem se renovar.
O mesmo, na AWS e no Simplio
| Na consola da AWS | No Simplio | |
|---|---|---|
| Pôr o certificado | Abrir a porta 443, terminal, bncert-tool ou Certbot, responder a perguntas: 5 passos, 20 minutos e um terminal | Script do Let's Encrypt do catálogo: escrever o domínio e clicar, 2 minutos |
| Se a renovação falha | E-mail do Let's Encrypt para quem o configurou, se ainda estiver na empresa | Aviso por e-mail de certificado prestes a expirar |
| Vários sites | Repetir em cada máquina | O mesmo script em cada máquina, a partir da mesma lista |