Ainda sem https? E se te contarmos que já existe uma iniciativa de grandes empresas em um projeto que faz isso gratuitamente?
Let’s Encrypt é uma autoridade de certificação sem fins lucrativos que fornece certificados TLS gratuitamente para milhões de sites e já chegou ao seu primeiro bilhão de certificados emitidos.
Uma coisa diferente agora é que a web está muito mais criptografada do que antes. Em junho de 2017, aproximadamente 58% dos carregamentos de página usaram HTTPS em todo o mundo, 64% nos Estados Unidos. Hoje, 81% dos carregamentos de páginas usam HTTPS globalmente, e estamos com 91% nos Estados Unidos! Esta é uma conquista incrível. Isso é muito mais privacidade e segurança para todos.
Vale lembrar que a iniciativa é mantida por um grande número de empresas globalmente dentre elas Mozilla, Cisco, EFF, chrome, facebook, avast, github, wix, vmware, one.com e muitas outras grandes empresas.
Um dado interessante sobre a Lets Encrypt no que diz respeito a escalabilidade é que em junho de 2017 eles atendia 46 milhões de site, com apenas 11 funcionários em tempo integral e um orçamento de US $2,61 milhões e em 2020 estão atendendo cerca de 192 milhões de sites com 13 funcionários e um orçamento de US $ 3,35 milhões, ou seja, a iniciativa mantida pelas empresas conseguiu atender a 4 vezes mais sites com apenas 2 funcionários a mais e um aumento de 30% dos custos com 400% de aumento de demanda.
Pontos a serem destacados
A documentação do projeto é bem completa e é o melhor local para estas informações mas é importante destacar alguns pontos.
VALIDAÇÃO DO DOMÍNIO
Para a emissão e entrega dos certificados é necessária a validação de domínio que nada mais é um processo e que pode ser executado de duas formas sendo:
- Por DNS: adicionando entrada DNS para o serviço conforme instrução que será gerada em tempo de execução (valor dinâmico)
- Por HTTP alocando determinado arquivo em URI acessível pelo serviço
TEMPO DO CERTIFICADO
Diferentemente de outros certificados que podem ser emitidos com expiração de um ano ou mais, os certificados Let’s Encrypt tem duração de apenas 3 meses e isso não há como alterar.
Neste artigo eles explicam com mais riqueza o motivo do certificado expirar em 90 dias.
AUTOMATIZAÇÃO DO CERTIFICADO
Como o tempo de duração de cada certificado é curto, para não haver necessidade de fazer isso manualmente a cada 90 dias, é altamente recomendado que seja configurado a automatização através de um client chamado de certbot (que é o client recomendado).
Como o automatizador vai ficar responsável por este trabalho a cada 90 dias, a depender da forma que você escolheu para validação do domínio, que pode ser por DNS ou por HTTP, o certbot deverá ter acesso ao recurso em questão.
Para o certbot, as duas abordagens demandam a utilização de plugin sendo que para HTTP existe o plugin de Apache, de nginx, por exemplo enquanto para DNS irá haver plugins para Amazon AWS Route 53 e outros serviços de gerenciamento de DNS.
A mais difundida é HTTP com plugins para os servidores web. Este processo basicamente vai no primeiro momento criar os certificados e em seguida criar ou atualizar o seu virtual host adicionando as entradas de SSL e demais informações. Posteriormente, ele será responsável somente por atualizar os arquivos e reiniciar o apache.
Para alguns, há o receio destas manutenções de forma automatizada e em virtude dos milhões de clientes e larga utilização todos deveriam dar uma chance principalmente para quem não tem HTTPS.
E como aplicar ele em meu servidor ou serviço?
A documentação é bem completa e é o melhor local para você buscar informações sempre atualizadas mas como exemplo iremos deixar aqui alguns comandos que poderiam ser executados em um ambiente Linux com distribuição Ubuntu e servidor web Apache.
Conforme imagem disponibilizada pelo Certbot como orientação estamos todos pressupondo que você já tem:
- familiaridade com linha de comando
- um site ou mais rodando neste servidor com a porta 80 (http) acessível
- acesso ssh com sudo habilitado
Requisitos:
- snapd instalado (caso não esteja ver documentação em https://snapcraft.io/docs/installing-snapd/
- certbot instalado, caso não esteja:
sudo snap install --classic certbot
Assim sendo, já com o devido acesso ao ambiente, vamos para a parte que irá praticar para sempre gerar um novo certificado para um domínio do seu servidor:
Para todos os sites configurados:
sudo certbot --apache
Para apenas um site:
sudo certbot --apache -d www.meusite.com.br
Para apenas gerar o certificado, mas não configurá-lo no apache:
sudo certbot certonly --apache
É só isso?
Sim, é “só” isso e o Let’s Encrypt com o Certbot fazem o restante.
Use o comando abaixo para testar se a renovação está OK para não ser pego de surpresa daqui 90 dias.
sudo certbot renew --dry-run
Curtiu? Compartilhe e marque seus amigos para que nosso conteúdo seja visto por mais pessoas.