SSL no Moodle com Let's Encrypt no CentOS

Introdução

Este tutorial irá mostrar-lhe como configurar um certificado SSL Let’s Encrypt em um servidor CentOS rodando Apache e o Moodle. Além disso, vamos cobrir a forma de automatizar o processo de renovação de certificado usando a cron.

Os certificados SSL são usados dentro servidores web para criptografar o tráfego entre o servidor e o cliente, proporcionando segurança extra para usuários que acessam seu aplicativo. Let’s Encrypt fornece uma maneira fácil de obter e instalar certificados confiáveis gratuitamente.

Outros sistemas Operacionais

No Ubuntu

No Windows

Pré-requisitos

  • Você precisa ter acesso ROOT ao seu servidor.
  • Não pode haver WHM/CPanel no servidor.

1º etapa - Criar um Virtual Host para seu domínio

O plugin Apache para Let’s Encrypt simplifica muito o processo de geração e instalar certificados SSL para domínios hospedados com Apache. No entanto, no momento da redação deste artigo, é necessário que você tem seus domínios organizados em máquinas virtuais, cada um em um arquivo de configuração separado.

Primeiro crie a pasta /etc/httpd/sites-enabled:

sudo mkdir /etc/httpd/sites-enabled

após, edite o arquivo /etc/httpd/conf/httpd.conf para que possamos chamar arquivos *.conf dentro desta pasta

sudo nano /etc/httpd/conf/httpd.conf

e no final do arquivo adicione:

Include sites-enabled/*.conf

agora crie o arquivo /etc/httpd/sites-enabled/ dominiomoodle.com.br.conf, mais lembre-se que dominiomoodle.com.br deve ser alterado pelo seu domínio.

sudo nano /etc/httpd/sites-enabled/ dominiomoodle.com.br.conf

dentro deste arquivo

<VirtualHost *:80>
    ServerName dominiomoodle.com.br
    DocumentRoot /var/www/html
</VirtualHost>

e salve.

Vamos entender as linhas:

  • ServerName: o seu nome de domínio principal. Sem WWW.
  • ServerAlias: é um valor opcional e é um alias para o seu domínio principal. É uma prática comum para adicionar o subdomínio www como um alias do domínio principal.
  • DocumentRoot: é o local onde os arquivos do seu Moodle deve ser encontrado. Por padrão é /var/www/html, e você pode alterar este valor se você quiser colocar seu Moodle em outra pasta do seu servidor.

E por último, reinicie o apache.

2º etapa - Instalar as dependências do Servidor

Antes de podermos instalar o cliente Let’s Encrypt e gerar o certificado SSL, precisamos primeiro instalar o repositório EPEL (Extra Packages for Enterprise Linux):

sudo yum install epel-release mod_ssl

3º etapa - Instalar o Let’s Encrypt

Vamos instalar o Let’s Encrypt.

yum install python-certbot-apache

4º etapa - Configurar o Certificado SSL

Agora vamos criar a SSL com o seguinte comando:

sudo certbot --apache -d dominiomoodle.com.br

Se você quiser ativar SSL para dominiomoodle.com.br e www.dominiomoodle.com.br execute assim:

sudo certbot --apache -d dominiomoodle.com.br -d www.dominiomoodle.com.br

e será apresentado algumas perguntas:

  • Seu e-mail: usado para notificar quando seu SSL estiver próximo de vender;
  • Termos do serviço: se aceita os termos do serviço;
  • Mailing: se aceita receber e-mail da EFF.

5º etapa - Configurar Renovação Automática

Certificados Let’s Encrypt são válidos por apenas 90 dias, mas é recomendável que você renove seus os certificados a cada 60 dias. Vamos então fazer uma Crontab para fazer este trabalho sozinho.

Primeiro acesse a crontab:

sudo crontab -e

Adicione a seguinte linha ao fim do arquivo:

0 3 1 */2 * certbot renew >> /var/log/le-renew.log

Quer entender cada passo:

  • 0 3 1 */2 *: diz que deve executar sempre aos Zero minutos, três horas, do dia 1 dos meses pares, sem destição de semana;
  • certbot renew: comando a ser executado para renovar o SSL automáticamente;
  • /var/log/le-renew.log: salva os LOGS da execução.

 

Fique por dentro de nossas novidades, ideias e atualizações