HTTPS – Vamos encriptar

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

  • Criando um tema para o Hyperterm

    O Hyperterm é um terminal desenvolvido com JavaScript/HTML/CSS, ou seja, baseado em padrões Web. O objetivo do projeto, crido pelo pessoal da Zeit, é criar uma experiência bonita e extensível para a interface de linha de comando. Inicialmente o projeto apenas funcionava no macOS, mas agora já está disponível para Linux (para Windows deve sair […]

  • Legenda em vídeos HTML5

    A Open Web é incrível. Até bem pouco tempo atrás nem imaginávamos o quanto seria possível ser feito com o HTML no futuro e até onde a linguagem evoluiria. Pois bem, este futuro chegou e as possibilidades com HTML5, além de incríveis, são praticamente infinitas. Vídeos O conteúdo da Web já não é só texto […]

  • Async Await, JS assincronamente síncrono

    O JavaScript tem evoluído muito nestes últimos anos e ainda temos muitas novidades interessantes a caminho! Este artigo é a continuação de uma série onde estamos discutindo as características assíncronas do JavaScript. Confira a lista dos artigos anteriores. As promises são uma daquelas coisas que trouxeram muitas mudanças na forma como trabalhamos com código assíncrono. […]

Patrocinadores BrazilJS

Gold

Bronze

BrazilJS® é uma iniciativa NASC.     Hosted by Getup