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.