Guia Completo: Instalação do Let’s Encrypt no Apache para Múltiplos Domínios e Subdomínios.


1. O que é Let’s Encrypt e Certbot?

O Let’s Encrypt é uma autoridade certificadora gratuita que permite gerar certificados SSL/TLS. O Certbot é a ferramenta oficial que automatiza a instalação e renovação desses certificados.

Este guia ensina como:

  • Instalar e configurar o Let’s Encrypt no Apache
  • Adicionar múltiplos domínios e subdomínios
  • Forçar redirecionamento HTTP para HTTPS
  • Automatizar a renovação dos certificados

2. Instalando o Certbot e o Plugin do Apache

Antes de começar, certifique-se de que seu servidor está atualizado. Execute:

Para Debian/Ubuntu

sudo apt update && sudo apt install certbot python3-certbot-apache -y

Para CentOS/RHEL

sudo dnf install certbot python3-certbot-apache -y

Após a instalação, o Certbot estará pronto para gerar e instalar certificados SSL no Apache.


3. Emitindo Certificados SSL para Múltiplos Domínios e Subdomínios

Opção 1: Gerar um único certificado para múltiplos domínios e subdomínios

Se quiser um único certificado para vários domínios e subdomínios, use:

sudo certbot --apache -d exemplo.com -d www.exemplo.com -d sub1.exemplo.com -d sub2.exemplo.com

Caso prefira que o certbot busque pelos seus domínios e faça tudo sozinho, use o comando certbot –apache, com isso ele buscará todos os dominios já configurados e instalará tudo automaticamente, evitando os passos abaixo. Mas isso só vale se já estiverem ativos os dominios no sites-enabled;

O Certbot:

  • Valida a propriedade dos domínios
  • Gera o certificado SSL
  • Configura automaticamente o Apache

Caso precise adicionar novos domínios depois, rode:

sudo certbot --apache --cert-name exemplo.com -d exemplo.com -d www.exemplo.com -d sub1.exemplo.com -d sub2.exemplo.com -d novo.subdominio.com

Opção 2: Gerar certificados separados para cada domínio/subdomínio

Se preferir que cada domínio tenha seu próprio certificado:

sudo certbot --apache -d exemplo.com
sudo certbot --apache -d sub1.exemplo.com
sudo certbot --apache -d sub2.exemplo.com

Isso cria um certificado individual para cada domínio, útil se houver configurações diferentes para cada um.


4. Configuração do Apache para Certificados SSL

Se o Certbot foi usado com --apache, o Apache já estará configurado corretamente. Caso tenha usado certonly, edite manualmente os arquivos de configuração.

Abra o arquivo do domínio:

sudo nano /etc/apache2/sites-available/exemplo.com.conf

Adicione a configuração SSL:

<VirtualHost *:443>
    ServerName exemplo.com
    ServerAlias www.exemplo.com sub1.exemplo.com sub2.exemplo.com
    DocumentRoot /var/www/exemplo

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/exemplo.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/exemplo.com/privkey.pem

    <Directory /var/www/exemplo>
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Salve e feche o arquivo, depois reinicie o Apache:

sudo systemctl restart apache2  # Debian/Ubuntu
sudo systemctl restart httpd    # CentOS/RHEL

5. Redirecionando HTTP para HTTPS

Para garantir que todas as conexões sejam feitas via HTTPS, adicione um redirecionamento no VirtualHost de porta 80:

<VirtualHost *:80>
    ServerName exemplo.com
    ServerAlias www.exemplo.com sub1.exemplo.com sub2.exemplo.com
    Redirect permanent / https://exemplo.com/
</VirtualHost>

Após editar, reinicie o Apache:

sudo systemctl restart apache2

Isso garante que qualquer acesso via HTTP seja automaticamente enviado para HTTPS.


6. Gerando um Certificado Wildcard (*.exemplo.com)

Se você deseja um único certificado para todos os subdomínios automaticamente (*.exemplo.com), use:

sudo certbot -d exemplo.com -d "*.exemplo.com" --manual --preferred-challenges dns certonly

O Certbot pedirá para adicionar um registro TXT no DNS. Faça isso na sua hospedagem e aguarde a validação.

Após a emissão do certificado, configure o Apache como explicado na seção 4.


7. Automatizando a Renovação dos Certificados

Os certificados Let’s Encrypt expiram a cada 90 dias, mas o Certbot já agenda a renovação automática. Para testar:

sudo certbot renew --dry-run

Se precisar reiniciar o Apache após a renovação, use:

sudo certbot renew --post-hook "systemctl restart apache2"

Isso garantirá que seus certificados sempre sejam renovados sem intervenção manual.


8. Se o Site Estiver Atrás do Cloudflare

Se o site estiver atrás do Cloudflare, altere a configuração do SSL no painel do Cloudflare para “Full (Strict)”. Isso evita conflitos entre o Let’s Encrypt e o Cloudflare.


Conclusão

O Let’s Encrypt é uma solução gratuita, segura e fácil para gerenciar certificados SSL. O Certbot automatiza todo o processo, mas se precisar de configurações específicas, os ajustes no Apache são simples.

Resumo das principais opções:

Para múltiplos domínios/subdomínios:

sudo certbot --apache -d exemplo.com -d sub1.exemplo.com -d sub2.exemplo.com

Para certificados separados:

sudo certbot --apache -d exemplo.com
sudo certbot --apache -d sub1.exemplo.com

Para certificados wildcard (*.exemplo.com):

sudo certbot -d exemplo.com -d "*.exemplo.com" --manual --preferred-challenges dns certonly

Para renovar automaticamente:

sudo certbot renew --dry-run

Agora seu servidor estará seguro e funcionando com HTTPS corretamente! Se precisar de ajuda, só perguntar.

Rolar para cima