Com o aumento da transmissão de informação, foi necessário criar uma forma de fiscalizar a transmissão dos dados para garantir a segurança. Imagina se você estiver comprando "no site do mercado livre" mas seu computador estiver trocando os dados com um servidor da Amazon por exemplo? Buscando resolver esse tipo de problema surgiram as unidades certificadoras (neste texto irei falar especificamente sobre a Let\’s Encrypt).
A Let’s Encrypt é uma autoridade de certificação. Ela gera um certificado de criptografia TLS (Transport Layer Security) que guarda informações sobre o servidor tornando possível a confirmação que a comunicação entre cliente e servidor é direta.
O que a Let’s Encrypt faz?
Ativa o HTTPS (Hyper Text Transfer Protocol Secure) usando um software com o protocolo ACME (Automated Certificate Management Environment). O que é isso? Não entendi nada. Calma, vamos por partes. Irei te explicar o que é e quais as funções dos protocolos HTTP/HTTPS e ACME mas, antes disso, entenda: A Let\’s Encrypt basicamente solicita que um arquivo seja colocado em um local específico do site. Assim que esse arquivo é colocado (quem faz isso no nosso caso é o Cliente ACME — Certbot), a let\’s encrypt confirma que o responsável pelo site é "você" e seu servidor recebe o certificado.
O que é HTTP e o que é HTTPS?
HTTPS é um protocolo utilizado na transferência de dados. Eu gosto de imaginar o HTTPS como o HTTP com esteróides uma vez que principal diferença entre os protocolos é que no HTTPS a comunicação é criptografada, no HTTP, não.
Explicando o HTTP
A explicação do HTTP poderia virar uma aula de redes mas serei breve. Quando o assunto é transferência de dados (considerando redes de internet) entenda que existe uma SÉRIE de protocolos e "padrões" divididos em camadas com funções específicas que possibilitam a comunicação entre dois computadores. As camandas variam de acordo com o modelo analisado:
Como o HTTP e o HTTPS fazem parte da camada de aplicação, a única coisa que vocês precisam saber é que: A camada de aplicação é a responsável por processar as requisições feitas pelos programas no sistema operacional e passar os dados para a camada de transporte.
O que é ACME?
ACME (Automated Certificate Management Environment) é um protocolo cuja função é automatizar o gerenciamento de certificados para validação de domínio ou seja, ele simplesmente facilita a configuração de sites HTTPS e tornar a web mais segura.
Como gerar certificado SSL/TLS (HTTPS) em seu site?
Nunca foi tão simples tornar seu site seguro. Os passos para geração de certificado são:
-
Instalar o cliente ACME, neste caso usarmoes o certbot (gerenciador de certificados) ****com a extensão para o seu servidor web (no meu caso uso o nginx);
sudo snap install core; sudo snap refresh core sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot sudo certbot --nginx
-
Selecionar o nome de domínio para validar:
- O Certbot irá te apresentar as opções de domínio. Basta digitar o número referente ao domínio que quer gerar o certificado
- Em background o servidor do cliente vai enviar uma requisição para a Autoridade de Certificação;
- O Cliente do ACME resolve os desafios;
- O ACME pega o certificado e instala.
Comandos adicionais
-
Revogando um certificado
certbot revoke --cert-name example.com
-
Gerando vários certificados de uma vez
certbot certonly --webroot -w /var/www/example -d www.example.com -d example.com -w /var/www/other -d other.example.net -d another.other.example.net