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/ 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;
- Mais detalhes em http://crontab.guru/#0_3_1_*/2_*
- certbot renew: comando a ser executado para renovar o SSL automáticamente;
- /var/log/le-renew.log: salva os LOGS da execução.
Eduardo como faz esta config no Windows
Eu fiz como instruído e sucesso. Obrigado