HTTPS - Vamos encriptar
Como comentei no post "A stack BrazilJS", começamos nosso ambiente e aplicações do zero. Habilitar HTTPS era mais do que nossa obrigação. Lançamos o novo site no dia 04/02/2016 e a partir do dia 06/02/2016 estamos habilitando HTTPS para todas as aplicações.
Atualmente estamos em um movimento onde todos estão (ou deveriam estar) migrando para HTTPS. São muitos os benefícios, sendo o principal a segurança. O HTTPS nada mais é do que um protocolo seguro para comunicação atráves de uma rede, neste caso a Internet. Com o HTTPS temos uma camada encriptada na conexão, nos trazendo mais privacidade e integridade dos dados trafegados.
Além da segurança, HTTPS é ponto chave na evolução de aplicações Web. A versão 2 do protocolo HTTP, por exemplo, nos traz uma série de benefícios ligados a performance. Mas para isso, antes é necessário já estar com HTTPS habilitado, já que a nova versão exige a camada de segurança.
Service Workers é uma tecnologia incrível que nos permite rodar scripts em background. Além disso, com Service Workers temos a possibilidade de interceptar e manipular as requisições dos Browsers, sendo possível gerenciar o cache das respostas. Bom, para fazer tudo isso funcionar, é preciso estar em um ambiente com HTTPS habilitado.
Como fazer
Habilitar o HTTPS em nossas aplicações foi uma tarefa trivial, graças ao Let's Encrypt. O Let's Encrypt é uma ferramenta free, open e automatizada de certificate authority (CA). Segundo o próprio site do Let's Encrypt, os seus princípios são:
Free: Qualquer pessoa que possua um domínio pode obter um certificado gratuitamente
Automático: Qualquer Web-server pode interagir com o Let's Encrypt de forma automatizada
Seguro: O Let's Encrypt aplica as melhores práticas de segurança
Transparente: Todos os certificados emitidos ou anulados serão gravados publicamente
Aberto: Todos os processos de renovação e automação serão abertos como open standard
Cooperativo: Assim como outros protocolos da internet, o Let's Encrypt é uma iniciativa para benefício da comunidade
Para habilitar o Let's Encrypt em um Ubuntu Server com Nginx, seguimos este excelente tutorial da Digital Ocean.
O básico:
git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt ./letsencrypt-auto certonly --standalone
Informe o seu email e domínios quando for requisitado. Altere o arquivo de configuração do Nginx (algo parecido com o código abaixo):
server { listen 443 ssl; server_name example.com www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; } server { listen 80; server_name example.com; return 301 https://$host$request_uri; }
Reinicie o Nginx:
sudo service nginx restart
Um detalhe importante: Os resources das páginas devem todos estar apontando para HTTPS, de maneira que se um arquivo CSS, um iframe ou um JavaScript estiver sendo requisitado via HTTP, o Browser irá alertar ou até mesmo bloquear conteúdos mistos. Na imagem abaixo, HTTPS em um artigo aqui do blog no navegador Google Chrome.
Conclusão
Habilitar HTTPS nos traz uma série de benefícios, além de, é claro, dar mais segurança aos usuários do seu site. Com a iniciativa Let's Encrypt, configurar esta camada de segurança é uma tarefa simples e gratuita.
Foto no topo da página por Carlos