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.
![HTTPS BrazilJS HTTPS BrazilJS](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fwp-content%2Fuploads%2F2016%2F02%2Fbraziljs-https.png)
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