• mail@brunobrito.pt

Como passar para HTTPS – blog WordPress com DigitalOcean (e ServerPilot)

Como criar um certificado SSL

Como passar para HTTPS – blog WordPress com DigitalOcean (e ServerPilot)

Como passar para HTTPS – blog WordPress com DigitalOcean (e ServerPilot) 620 350 Bruno Brito

Se procuras instalar um certificado SSL (ou Secure Sockets Layer) no teu blog WordPress alojado no DigitalOcean, este tutorial é para ti.

(Se quiseres saber como instalar um blog WordPress no DigitalOcean, podes seguir este tutorial).

Os certificados SSL têm sido alvo de bastante conversa ultimamente; para além de conferirem credibilidade a um site (especialmente se se tratar de uma loja online ou de uma webapp), apresentando o habitual cadeado ao lado da barra de endereços do browser, é também (desde 2014) um sinal de ranking para o Google – o que significa que para além da segurança acrescida, até por motivos de SEO é boa ideia adquirir um.

Os obstáculos para um certificado SSL

Até há bem pouco tempo, existiam no entanto dois problemas:

  1. adquirir um certificado SSL custava dinheiro;
  2. a sua instalação era um processo relativamente complexo.

O Let’s Encrypt, um serviço criado pelo Internet Security Research Group (ISRG), veio resolver o 1º problema.

Este projecto saíu da beta este ano e é, neste momento, a melhor opção gratuita para criar certificados SSL, tendo registado enorme adopção nos primeiros meses de existência, contando já com mais de 2 milhões de certificados emitidos.

Logotipo Let’s Encrypt

Resta-nos a 2ª questão – o processo de instalação. Existem inúmeros guias pela web fora, como este, que são interessantes se quisermos entender melhor os passos necessários para a emissão de um certificado.

Não é um processo muito complicado para quem tem alguma confiança na linha de comando, mas como temos de repetir este processo de 3 em 3 meses para renovar o certificado, o melhor será mesmo recorrer a um script – felizmente, também já alguém tratou disso.

Assim, o tutorial que se segue tem em conta este excelente script criado por Rudy Affandi – não só serão menos passos como só terás que fazer isto uma vez – e sim, também funciona para vários blogs na mesma conta DigitalOcean!

Requisitos para este tutorial

Antes de começar, vamos então recordar os requisitos:

NOTA: outras versões do Ubuntu poderão funcionar, mas estas são aquelas que testei. O autor do script também já referiu que pode não ser compatível com o Ubuntu 16.04.

Logotipos ServerPilot, DigitalOcean e WordPress

Para este guia, adquiri um domínio barato para testes (testesdobrito.xyz), que servirá como exemplo daqui em diante.

Vamos começar!

#1: Acesso via SSH

O primeiro passo será aceder à máquina do DigitalOcean via SSH. Como estou num Mac, gosto de utilizar o iTerm, que é grátis. Em Windows, o Powershell não é mau mas prefiro o Git Bash, simplesmente por ter uma shell que me é mais familiar.

Seja em que programa for, deverás aceder à máquina digitando ssh root@xxx.xx.xx.xxx trocando os “x” pelo IP da tua máquina DigitalOcean. De seguida, deves inserir a password da conta root, que deverás ter recebido por e-mail quando criaste o droplet no DigitalOcean.

Acesso SSH DigitalOcean

Agora que o login está efectuado, estás ligado remotamente e tudo o que fizeres será nesse computador.

#2: Instalação do script

De seguida vamos descarregar o script que referi em cima e torná-lo executável. O mesmo deve ficar instalado na pasta /usr/local/bin.

Para tal, estes são os comandos a inserir:

  1. cd /usr/local/bin para navegar até essa directoria;
  2. wget https://raw.githubusercontent.com/lesaff/serverpilot-letsencrypt/master/sple.sh para descarregar o ficheiro do script directamente do Github;
  3. sudo chmod +x /usr/local/bin/sple.sh para o tornar executável.

Comandos para descarregar script do Github

#3: Emissão do Certificado Let’s Encrypt

Chegou a altura em que devemos arrancar o script para instalar o certificado Let’s Encrypt no nosso blog. Para tal, basta escrever sudo sple.sh, confirmar que o queremos instalar (digitando Y) e inserir o nome da app do nosso blog, que deverá ser o mesmo do ServerPilot.

Dados da app no ServerPilot

Por fim, inserimos o(s) domínio(s) respectivo(s). Para concluir o processo, após um par de minutos terás de inserir o teu e-mail e concordar com a licença.

Execução do script HTTPS

Passados alguns segundos, deverás ler a seguinte mensagem de sucesso:

Your Let's Encrypt SSL certificate has been installed. Please update your .htaccess to force HTTPS on your app
Cheers!

Está feito! Vamos só então forçar o HTTPS, conforme sugerido, porque neste momento estás a apresentar ambas as versões do site.

#4: Forçar o HTTPS (redireccionar de HTTP para HTTPS)

Agora que tens uma versão HTTPS do site, deverás forçar o redireccionamento, para que quem não digite https:// seja automaticamente transportado para a versão segura.

Para tal, deverás ir à raíz da tua aplicação WordPress (que será em /srv/users/serverpilot/apps/xxx/public, trocando o xxx pelo nome da tua app) e criar (ou modificar) um ficheiro intitulado .htaccess (atenção ao .) – podes realizar este passo através de um programa de FTP como o Filezilla ou através do terminal, como preferires.

Nesse ficheiro, deves colocar o seguinte pedaço de código logo no início:

RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]

E pronto! Agora, se digitares http://oteusite.com deverás ser automaticamente levado para https://oteusite.com.

Redireccionamento HTTPS

Está feito! Em princípio deverá ficar tudo OK. Se não for o caso, sugiro que comeces por instalar o plugin SSL Insecure Content, porque ainda podem existir alguns redireccionamentos em falta.

Se tiveres uma CDN como a Amazon Cloudfront, é possível que tenhas de realizar mais algum trabalho de investigação – este blog, por exemplo, utiliza CloudFront e ainda não consegui que funcionasse a 100% com HTTPS.

Conclusão

Como vês, criar um certificado HTTPS para um blog WordPress não tem que ser dispendioso ou complicado – e graças a este script, não terás que repetir estes passos de 3 em 3 meses!

Estes serviços estão cada vez melhores!

    Se quiser entrar em contacto comigo, pode enviar-me um e-mail para mail@brunobrito.pt ou preencher o formulário abaixo.

    NOTA: Todos os campos são de preenchimento obrigatório.


      Como passar para HTTPS – blog WordPress com DigitalOcean (e ServerPilot)

      Tempo de Leitura: 5min
      0