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:
- adquirir um certificado SSL custava dinheiro;
- 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.
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:
- blog WordPress;
- alojamento no DigitalOcean com Ubuntu 12.04 ou 14.04 de 64-bit e acesso root;
- integração do serviço ServerPilot (como aqui referido);
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.
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.
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:
cd /usr/local/bin
para navegar até essa directoria;wget https://raw.githubusercontent.com/lesaff/serverpilot-letsencrypt/master/sple.sh
para descarregar o ficheiro do script directamente do Github;sudo chmod +x /usr/local/bin/sple.sh
para o tornar executável.
#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.
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.
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
.
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!