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
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/salasead.com.br.conf
, mais lembre-se que salasead.com.br deve ser alterado pelo seu domínio.
sudo nano /etc/httpd/sites-enabled/salasead.com.br
.conf
dentro deste arquivo
<VirtualHost *:80> ServerName salasead.com.br ServerAlias www.salasead.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
e vamos precisar do git
também.
sudo yum install git
3º etapa - Download do Let’s Encrypt Client
Vamos baixar o Let’s Encrypt na pasta /opt
e deixar a la para sempre usarmos.
sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
Isto irá criar uma cópia local do Let’s Encrypt oficial em /opt/letsencrypt
.
4º etapa - Configurar o Certificado SSL
Acesse a pasta que baixou o Let’s Encrypt
cd /opt/letsencrypt
e vamos instalar os SSL
sudo ./letsencrypt-auto --apache -d salasead.com.br -d www.salasead.com.br
e será apresentado algumas telas:
Primeira será pedido seu e-mail, e este será notificado a você sobre novidades e caso o seu SSL esteja expirando. Enter para aceitar:
Após será apresentado os termos do serviço que deverá ser aceito. Enter para aceitar:
Terceira tela perguntará se você deseja apenas ativar o SSL (Easy) ou você quer que todas as requisições que cheguem em HTTP sejam transferidas automáticamente para HTTPS (Secure). Use as setas e selecione Secure e Enter para OK:
E, após tudo finalizado apresenta tela que mostra que esta OK.
No servidor, você verá que o arquivo /etc/httpd/sites-enabled/salasead.com.br-le-ssl.conf
foi criado.
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 * /opt/letsencrypt/letsencrypt-auto 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;
- Mais detalhes em http://crontab.guru/#0_3_1_*/2_*
- /opt/letsencrypt/letsencrypt-auto renew: comando a ser executado para renovar o SSL automáticamente;
- /var/log/le-renew.log: salva os LOGS da execução.
Se quiser atualizar o Let’s Encrypt é só executar:
cd /opt/letsencrypt sudo git pull
Eu fiz como instruído e sucesso. Obrigado