Há algumas semanas atrás eu publiquei essa imagem em minhas redes sociais:

https://rafaelfunchal.com.br
Graças a esses 3 projetos agora meu site tem SSL:
– https://easyengine.io/
– http://wp-cli.org/
– https://letsencrypt.org/
E ainda tem gente que não gosta do mundo Open Source 😀

Muitas pessoas perguntaram quando eu escreveria um post com o passo a passo. A resposta é: O post estará disponível em breve aqui mesmo nessa URL, porém, falarei sobre isso antes no WordCamp São Paulo 2016!

Conforme prometido, atualizei o post com o passo a passo para instalar SSL usando 3 projetos Open Source maravilhosos!

O que é SSL?

SSL/TLS (Secure Sockets Layer / Transport Layer Security) é o HTTP com uma camada adicional de segurança. Essa camada mantém a comunicação entre seu computador e o servidor de um modo seguro.

O site continua usando o protocolo HTTP, mas os dados são criptografados e descriptografados durante a comunicação.

Por que usar SSL?

Além de adicionar mais segurança ao seu site, já que os dados são criptografados, é muito importante utilizar HTTPS por esses dois motivos:

  1. O Google informou que dará preferência a sites com SSL nos resultados da busca e o Google Chrome exibirá um aviso de “site não seguro” caso não exista nenhum certificado nele;
  2. Toda matéria sobre compras na internet aconselham que os usuários não informem dados de cartão de crédito ou qualquer outra informação em sites que não tenham o cadeadinho na barra de endereço do navegador.

Isso significa que, caso seu site não seja carregado com HTTPS, ele não será encontrado no Google e ninguém terá confiança em comprar em sua loja online.

Projetos Open Source

Como eu citei no título do post, utilizaremos 3 projetos Open Source para instalar um certificado SSL no nosso site:

Let’s Encrypt

A comunidade Open Source se reuniu para resolver esses problemas e assim nasceu o Let’s Encrypt, um projeto mantido por dezenas de empresas (entre elas a Automattic), que concede certificados gratuitamente!

Os certificados gerados pelo Let’s Encrypt têm validade de 90 dias e devem ser renovados para que continuem funcionando corretamente.

O único requisito é que seu site seja instalado em um VPS, já que é necessário ter acesso SSH para fazer as configurações.

Caso seu site esteja usando um servidor compartilhado, é necessário contratar os certificados disponibilizados por sua hospedagem, mas eu acredito que migrar para um VPS pode te trazer muitas melhorias.

EasyEngine

O EasyEngine é uma interface de linha de comando que facilita o gerenciamento de servidores e é capaz de criar instalações otimizadas do WordPress, por exemplo, com apenas uma linha de comando.

Escrevi sobre ele no começo desse ano aqui mesmo no meu blog.

WP-CLI

O WP-CLI é uma interface de linha de comando, que é instalada automaticamente pelo EasyEngine, que torna mais rápido o gerenciamento de sites WordPress em VPS.

Instalando o SSL

Como eu comentei antes, é necessário ter acesso ao seu servidor por SSH.

Para começar, vamos instalar o EasyEngine em seu servidor.

O primeiro passo é acessar o servidor usando SSH e depois rodar o seguinte comando:

wget -qO ee rt.cx/ee && sudo bash ee

Isso fará o download e instalação do EasyEngine (EE) em seu servidor.

Agora podemos criar uma instalação WordPress rodando esse comando (substituia meusite.com.br por seu próprio domínio):

ee site create meusite.com.br --wpfc --letsencrypt

Pronto! você acabou de instalar o WordPress usando Nginx, cache do Nginx, php5-fpm, MariaDB e Let’s Encrypt.

Se você já tem um site criado com o EasyEngine, é possível instalar o Let’s Encrypt nele usando esse comando:

ee site update meusite.com.br --letsencrypt

O EasyEngine se encarregará de criar um CRON para renovar seu certificado a cada 90 dias.

Depois de criar e instalar o certificado, é necessário atualizar as URLs de HTTP para HTTPS.

O modo mais simples de fazer isso é usando o WP-CLI:

wp search-replace 'http://meusite.com.br' ‘https://meusite.com.br'

Muito mais fácil do que fazer manualmente diretamente no banco de dados, não é?

É isso (sim, é só isso mesmo!). Agora você tem um site WordPress rodando SSL oferecido pelo Let’s Encrypt e, graças ao mundo Open Source, você gastou apenas alguns minutos para fazer isso.

Instalando apenas o Let’s Encrypt

Caso você não queira instalar o EasyEngine em seu servidor, você pode instalar apenas o Let’s Encrypt:

sudo apt-get install lets-encrypt

E depois gerar o certificado usando esse outro comando:

lets-encrypt meusite.com.br

Os slides apresentados no #WordCampSP estão disponíveis no SlideShare e Speaker Deck.

  • Pingback: 2016 foi bacana sim - Rafael Funchal

  • Funchal. Não sei o motivo, mas o código que você postou está faltando um sinal de “-” antes das features escolhidas para cada domínio.

    O correto seria: ee site create dominio.com.br –wpfc –letsencrypt




    0



    0
  • Participei do WordCamp SP 16 e 17 e assisti sua palestra sobre o tema aqui descrito Rafael. Só tenho que lhe parabenizar pelo mesmo.
    Estava lendo seu blog, e me pintaram algumas dúvidas. Se você puder me ajudar com as mesmas, lhe agradeço.

    1) Não vi nos comandos a instalação do Varnish. Quando trabalhamos com o Nginx e o cache do mesmo, não é necessário usar o Varnish?

    2) E quanto aos e-mails? Para utilizar, por exemplo, o Zoho Mail, tenho que fazer os apontamentos MX. Trabalho com hospedagem compartilhada onde tenho um gerenciador de DNS para essa finalidade. Em um servidor Cloud ou VPS, como fazer esse gerenciamento/apontamento? Tem algum link de dica de como gerenciar isso?

    3) O comando ee site create example.com –mysql cria um site com php e base mysql. Para criar um site com PHP 7 e base mysql, devo usar o comando ee site create example.com –wp –php7 correto?

    Quando tenho um site (VPS ou Cloud), como fica a questão de segurança, ataque, atualização do SO, e principalmente backup e/ou restore? Tenho alguns clientes em servidor compartilhado. Quero migrar por motivos óbvios para um VPS ou Cloud, todavia, um dos receios que tenho é de perder site de cliente ou ficar fora do ar, por atualizar algo de forma incorreta no SO ou mesmo sofrer um ataque e perder tudo. Esse risco existe ou as empresas cuidam dessa parte (Backup e atualização do Linux)?

    Agradeço sua atenção desde já.




    0



    0
    • Oi, Gustavo!

      Valeu por comentar 🙂

      1) Não vi nos comandos a instalação do Varnish. Quando trabalhamos com o Nginx e o cache do mesmo, não é necessário usar o Varnish?

      Como comentei no post sobre a instação com o EasyEngine, o cache que ele instala automaticamente é do próprio Ngninx. Você pode ler o post nesse link:

      https://www.rafaelfunchal.com.br/blog/tutoriais/configurando-um-vps-com-easyengine/

      2) E quanto aos e-mails? Para utilizar, por exemplo, o Zoho Mail, tenho que fazer os apontamentos MX. Trabalho com hospedagem compartilhada onde tenho um gerenciador de DNS para essa finalidade. Em um servidor Cloud ou VPS, como fazer esse gerenciamento/apontamento? Tem algum link de dica de como gerenciar isso?

      Configurações de DNS não são feitas diretamente com o EasyEngine, mas todos as empresas que conheço que oferecem serviços de VPS disponibilizam um painel para gerenciar DNS.

      3) O comando ee site create example.com –mysql cria um site com php e base mysql. Para criar um site com PHP 7 e base mysql, devo usar o comando ee site create example.com –wp –php7 correto?

      Acho que você confundiu os comandos aí. No primeiro você cita um site comum e no outro um WordPress. Vale a pena dar uma olhada na documentação do comando site create nesse link:

      https://easyengine.io/docs/commands/site/create/

      Quando tenho um site (VPS ou Cloud), como fica a questão de segurança, ataque, atualização do SO, e principalmente backup e/ou restore?

      Como os VPS são administrados por quem o contrata, esses questões ficarão sob sua responsabilidade ou na de quem você contratar para gerenciar seus servidores para você.




      1



      0

Deixe uma resposta