Ainda há quem não se preocupe com este tema, mas visitar um site sem HTTPS é frustrante, sobretudo quando já se tornou algo fácil de implementar. Melhor, quando se trata de HTTPS gratuito.
Neste artigo vou mostrar-vos uma forma fácil de fazê-lo.
Agradecimento aos artigos do Troy Hunt que finalmente me motivaram a ir para a frente com isto. Update (Junho 2018): ele ainda foi mais longe; não há mesmo desculpas.
O que é HTTPS?
Em termos leigos, o ‘S’ no final da sigla representa a palavra Seguro (Secure), e significa que o protocolo de comunicação de informação entre o nosso computador e um site que visitamos é seguro, e esta informação é encriptada. Esta conexão é resultado e garantida pelo facto de que o site tem um certificado SSL:
Navegadores de Internet (browsers) como o Google Chrome e o Mozilla Firefox já tomaram precauções de modo a alertar os utilizadores quando visitem websites inseguros, através de alertas mostrados na barra de endereço de URL do browser.
O único obstáculo a implementar HTTPS é a nossa vontade
O certificado SSL sempre foi algo que se pagou, até há uns anos atrás. Já existem formas gratuitas de conseguir um, pelo que o único impedimento é a nossa motivação. Além disso, é uma implementação quase imediata.
Para quem tenha um site hospedado gratuitamente no WordPress (.com) isto não será um problema: desde 2016 que todos os sites hospedados nesse serviço específico têm https já incluído. A mesma coisa no Wix.
Por outro lado, se tenho um site no WordPress.org, a responsabilidade de alojamento e a responsabilidade desta encriptação é minha: sou eu quem tem de assegurar que a informação entre o browser dos meus visitantes e o meu site é encriptada.
Registei o meu nome de domínio através do GoDaddy, onde temos depois de fazer um par de pequenas alterações. Para já, ainda não temos um certificado SSL.
Mãos à obra.
HTTPS gratuito com a Cloudflare
Primeiro passo: acedo ao site da Cloudflare e registo-me gratuitamente.
Neste momento, a Cloudflare dá-me dois nomes de servidor (nameservers) que devo copiar para definir no GoDaddy. Algo como isto:
Acedo ao GoDaddy, menu DNS do meu site (se também têm lá o vosso domínio registado, cliquem aqui para instruções).
No meu caso, https://dcc.godaddy.com/manage/pedrosaurus.com/dns
Como quero ter nameservers próprios e não os do GoDaddy, terei de redefini-los na secção Nameservers dessa página.
Ao clicar em “Custom“, insiro os dois nameservers que a Cloudflare me deu e guardo as alterações.
Se não têm o domínio registado com a GoDaddy, verifiquem se o vosso fornecedor consta do final deste artigo. Caso contrário, terão de procurar a documentação correspondente do mesmo.
Em teoria, está feito. Após um período de espera pela alteração (poderá ir até 48 horas), os meus novos nameservers estão aceites.
Após esta confirmação, tenho de fazer uma ligeira alteração no WordPress. Entro no menu Settings » General e altero ‘http’ para ‘https’, e guardo as alterações:
Escrevo o nome do meu site na barra de endereço, já com “https://(…)”, e verifico que já sirvo o meu conteúdo de forma segura.
Assunto encerrado, certo?
Errado. Falta um passo importante.
HTTP para HTTPS: redireccionamento
Se partilhei links para o meu site no passado, se alguém escrever http://pedrosaurus.com, ou simplesmente “pedrosaurus.com” na barra de endereços, então não estou a garantir que o meu conteúdo seja apresentado de forma segura.
Por exemplo, se forem verificar se o site da Startup Lisboa tem um certificado SSL, poderão confirmá-lo. No entanto, ao visitar http://www.startuplisboa.com, não há redireccionamento (pelo menos à data).
(verifiquei neste site)
A não ser que o façam de outra forma (e.g. ficheiro .htaccess), é muito fácil garantir este redireccionamento de HTTP para HTTPS.
De volta à minha conta da Cloudflare, e no menu Crypto, activo a opção “Always use HTTPS“. Mais fácil é impossível…
Outros links com HTTP
Uma questão essencial: sempre que tenha inserido imagens em artigos do meu site, por exemplo, pode ter acontecido submeter o link completo.
O código HTML por detrás da imagem é:
<img src=”http://pedrosaurus/(…)/image.jpg”>
Em vez de simplesmente:
<img src=”/(…)/image.jpg”>
Ou seja, se tiver dezenas de imagens, terei de ir rever o link de cada! Até ter isto resolvido, nunca servirei realmente o meu conteúdo via HTTPS.
Consequentemente, os browsers nunca mostrarão que o meu site é realmente seguro, e a culpa não é do visitante.
Contudo, e uma vez mais, a Cloudflare resolve o problema por mim: novamente no menu Crypto basta activar a opção “Automatic HTTPS Rewrites” (um pouco mais abaixo da que vimos mais acima).
Assim, sem mais nem menos, está ultrapassado o problema.
Há que deixar uma palavra de apreço à Cloudflare. Isto é resultado de um esforço muito importante: ao facilitar de um modo extremo a experiência de utilizador (sobretudo se um leigo como eu), e literalmente com um clique, estão no fundo a lutar para garantir uma Internet mais segura.
Google Search Console
Por motivos de indexação correcta do meu site, entro na Search Console (previamente Webmaster Tools) do Google e defino as minhas novas propriedades: indexo tanto https://pedrosaurus.com, como https://www.pedrosaurus.com.
Nota final:
Um site com HTTPS não significa que o mesmo seja de confiança
Tudo bem, a ligação é segura, mas o site pode na mesma ser um site de phishing, por exemplo.
Como explica o Scott Helme neste artigo, “um site entregar o seu conteúdo de forma segura não significa que o conteúdo em si seja seguro” (trad.).
A resposta a este novo obstáculo é o HSTS, uma história que terá de ficar para outra ocasião (ou experimentem vocês mesmos, e sigam os passos do Troy Hunt!).