Iniciante Fundamentos
SSL e HTTPS
HTTPS criptografa o tráfego entre o navegador e o servidor. No Apache, o suporte vem do módulo mod_ssl, que escuta na porta 443 e usa um certificado.
Ativar o módulo
sudo a2enmod ssl
sudo systemctl restart apache2
Virtual host HTTPS
<VirtualHost *:443>
ServerName exemplo.com
DocumentRoot /var/www/exemplo
SSLEngine On
SSLCertificateFile /etc/ssl/certs/exemplo.crt
SSLCertificateKeyFile /etc/ssl/private/exemplo.key
</VirtualHost>
SSLEngine On: liga o SSL no host.SSLCertificateFile: o certificado público.SSLCertificateKeyFile: a chave privada.
Redirecionar HTTP para HTTPS
<VirtualHost *:80>
ServerName exemplo.com
Redirect permanent / https://exemplo.com/
</VirtualHost>
Certificado gratuito
Para produção, use o Let’s Encrypt com o Certbot, que emite e renova o certificado:
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d exemplo.com
Aplicar
sudo apache2ctl configtest
sudo systemctl reload apache2
Guarde a chave privada com permissões restritas e nunca a exponha publicamente.