Recentemente no processo de trazer os meus posts de outros locais e junta-los todos em um domínio único, percebi que o Google Chrome estava me dando uma mensagem de "Navegação não segura".
Queira ou não, isso não passa uma imagem de credibilidade pra quem acessa, então decidi ver algumas opções pra que todos os acessos ao meu domínio, fossem redirecionados para o HTTPS ou portal SSL.

O que é SSL?

"Secure Socket Layer (SSL) é um padrão global em tecnologia de segurança desenvolvida pela Netscape em 1994. Ele cria um canal criptografado entre um servidor web e um navegador (browser) para garantir que todos os dados transmitidos sejam sigilosos e seguros".

SECTIGO

Portanto é uma alternativa muito interessante para seu site ou app ter uma porta SSL (443 geralmente) configurada pra que todas as requisições HTTP sejam redirecionadas para HTTPS.

A forma mais fácil que encontrei foi utilizando o CERTBOT, de forma muito intuitiva e automatizada ele te fornece os certificados da Let's Encrypt e uma configuração automática para o arquivo de configuração do seu Nginx.

Atenção!

Antes de qualquer coisa, aconselho fazer backup do seu arquivo de configuração do Ngnix e pesquisar mais opções de certificados SSL, estou utilizando o Certbot e Let's Encrypt pelo simples fato de ser grátis e claro, por ter funcionado pra mim, de qualquer forma retorne o arquivo de backup caso haja algum problema.

Instalando

Após iniciar a sessão através do SSH (ex: ssh user@123.123.123.123) algumas dependências são necessárias, neste exemplo estou utilizando o Ubuntu 18.04 LTS.

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository universe
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot python-certbot-nginx 

Instalando os certificados e configurando o Nginx

Caso queira realizar a geração + configuração de forma automática, o Certbot oferece um único comando, após a execução do comando algumas escolhas de opções podem ser necessárias:

sudo certbot --nginx

Caso queira gerar os certificados e configurar manualmente o Nginx:

sudo certbot --nginx certonly

Restarte o Nginx:

sudo service nginx restart

Atenção!

Como citado anteriormente, certifique-se de que essa é a melhor opção pra você e sua aplicação, trabalhe de forma segura, sempre faça backups de arquivos de configuração e sempre execute configurações de sistema com a máxima atenção, qualquer coisa feita de forma errada, pode desfazer dias, semanas ou até meses de trabalho.

Plus!

Também existe a opção de forçar o SSL pelo Rails, alguns defendem apenas a configuração do Nginx e outros optam por usar as duas coisas, tanto o Nginx quanto o Rails. Para configurar o SSL no Rails, existe uma opção presente desde o Rails 3.1, no arquivo config/enviroments/production.rb podemos forçar o SSL da seguinte forma:

Rails.application.configure do
  # ...

  # force HTTPS
  config.force_ssl = true
end

Nesse exemplo, apenas configurei o Nginx, caso faça a configuração no Rails, atualizo o Post.

Por hoje, é só. :D