Vou tentar criar o hábito de postar mais frequentemente. Vamos nessa!?

Recentemente no meu trabalho eu me deparei com um cenário interessante. Tinha a missão de criar um APP para Facebook que pegava a lista de cinemas de um grande Shopping daqui de Natal e divulgava em um Canvas.

O que acontece é que ele precisa de uma janela que rode em um link HTTPS apontando para a aplicação.

Mas como fazer funcionar já que nosso digital Ocean (nosso de cada dia) não vem com esse suporte por padrão? A resposta é: habilitar um serviço SSL no servidor!

Vamos aos benefícios de se usar um SSL?

Prós

  • Garante segurança aos usuários através de transações seguras;
  • Você ganha um “https://”;
  • Você pode utilizar em sites que só funcionam com HTTPS (exemplo do nosso amigo Canvas do facebook).

Contras

  • Instalação não tão trivial;
  • Se vence a cada ano; tem que ser organizado com os prazos;

O que dizer dos “Grátis”?

image

Há um serviço que eu acho muito interessante para nossa pesquisa. Trata-se do Cacert! Ele é uma unidade certificadora mantida pela comunidade que fornece certificados SSL para os mais variados fins. Iremos usá-lo para nosso exemplo. Dá uma verificada nos sites que possuem SSL do Cacert.

Passos

  • Faça seu cadastro no site de registro: https://www.cacert.org/index.php?id=1;
  • Ao cadastrar, confirme o e-mail e vá para o painel de controle;
  • Adicione seu domínio na aba Domains -> Add; Ao adicionar o domínio ele fará um “WHOIS” para saber os emails que pode utilizar para confirmar a autoria do e-mail;
  • Ao confirmar o e-mail do domínio vamos ao seu VPS para criar as chaves ssh;
  • No seu VPS crie as chaves que você irá utilizar para solicitar um certificado;
openssl genrsa -out ~/dominio.com.ssl/dominio.com.key 2048

Importante!

Quando você for gerar a sua chave privada não use uma senha senão você terá problemas toda vez que precisar reiniciar seu serviço nginx!

  • Gere o arquivo CSR a partir da chave que você solicitou.
openssl req -new -key ~/dominio.com.ssl/dominio.com.key -out ~/dominio.com.ssl/dominio.com.csr
  • Pegue a informação do csr e copie (Ctrl + C):
cat ~/dominio.com.ssl/dominio.com.csr
  • No site vá até Server Certificates -> Add;
  • No campo de texto cole as informações do arquivo CSR (que estava na área de trabalho);
  • Ele irá gerar um arquivo crt: salve na pasta do seu projeto como dominio.com.crt;
  • Vá até o site e copie o certificado raíz do Cacert no menu “Root Certificate” https://www.cacert.org/index.php?id=3 - Link direto: https://www.cacert.org/certs/root.crt;
  • Salve o arquivo dentro da pasta do seu certificado com o nome root.crt;
  • Agora mescle o certificado gerado dominio.com.crt com o root.crt;
cat ~/dominio.com.ssl/dominio.com.crt ~/dominio.com.ssl/root.crt > ~/dominio.com.ssl/site-ssl.crt
  • Vamos editar nosso arquivo de configuração para nosso site com nginx;
vim /etc/nginx/nginx.conf

Fique à vontade para usar seu editor favorito! * Na hora de adicionar um site adicione as seguintes linhas, dentro da área “server”:

ssl on;
ssl_certificate /home/universo42/dominio.com.ssl/site-ssl.crt;
ssl_certificate_key /home/universo42/dominio.com.ssl/dominio.com.key;
  • Salve e teste se deu tudo certo com sua configuração;
nginx -t -c /etc/nginx/nginx.conf
  • Se deu tudo certo, só reiniciar e partir pra o abraço!
service nginx restart
  • Teste a nova configuração acessando o seu domínio, utilizando https:// antes.

Comenta aí o que achou da postagem! Abraços!