HTTPS – Vamos encriptar

Por:
Em:

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. 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

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

Cursos recomendados pela BrazilJS

    • Domínios .TECH – A Extensão de Domínio Definitiva para a Comunidade de Tecnologia

      Domínios .tech, uma nova extensão de domínio, é um dos parceiros especiais da BrazilJS

    • Brincando com o Acelerômetro

      Diversos devices como celulares (praticamente todos os smartphones) e boa parte dos notebooks modernos, já contam com o acelerômetro. O acelerômetro é a parte responsável por identificar a posição ou giro do aparelho. É o que grande parte de nossos joguinhos usa, pelo SO do aparelho, ou por apps que exibem algo diferente conforme usamos […]

    • Você realmente entende as Funções em JavaScript?

      Funções em JavaScript Oi? Funções?! Funções são uma daquelas coisas que nós mais usamos em nossa vida de desenvolvedor JavaScript. Algo que usamos no dia-a-dia, algo que sempre usaremos nesta linguagem, para os mais variados paradigmas. Mas será que realmente conhecemos as entranhas delas? O funcionamento real e cada macete ao usar as funções em […]

    Patrocinadores BrazilJS

    Gold

    Silver

    Bronze

    Apoio

    BrazilJS® é uma iniciativa NASC.