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.