Skip to content

Configuração do Apache com HTTPS (Let's Encrypt No‐IP)

Paulo Soares edited this page May 23, 2025 · 6 revisions

📁 Arquivos de VirtualHost

✅ 1. Arquivo: /etc/apache2/sites-available/PDFTools.conf (HTTP – porta 80)

<VirtualHost *:80>
    ServerName meusite.com

    # Redireciona todo tráfego HTTP para HTTPS
    Redirect permanent / https://meusite.com/
</VirtualHost>

✅ 2. Arquivo: /etc/apache2/sites-available/PDFTools-ssl.conf (HTTPS – porta 443)

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName meusite.com

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

    WSGIDaemonProcess PDFToolsSSL python-path=/var/www/PDFTools:/var/www/PDFTools/venv/lib/python3.10/site-packages
    WSGIProcessGroup PDFToolsSSL
    WSGIScriptAlias / /var/www/PDFTools/app.wsgi

    <Directory /var/www/PDFTools>
        Require all granted
    </Directory>

    Alias /static /var/www/PDFTools/static
    <Directory /var/www/PDFTools/static/>
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/PDFToolsSSL_error.log
    CustomLog ${APACHE_LOG_DIR}/PDFToolsSSL_access.log combined
</VirtualHost>
</IfModule>

IMPORTANTE: o nome PDFToolsSSL em WSGIDaemonProcess e WSGIProcessGroup deve ser diferente do nome usado em qualquer outro VirtualHost. Isso resolve o erro de “nome duplicado”.

🔧 Como aplicar

  1. Salve os dois arquivos:
  • /etc/apache2/sites-available/PDFTools.conf

  • /etc/apache2/sites-available/PDFTools-ssl.conf

📂 Configuração do Apache

  1. Desative qualquer configuração anterior com nome repetido:
sudo a2dissite 000-default.conf
sudo a2dissite default-ssl.conf
  1. Ative os novos arquivos:
sudo a2ensite PDFTools.conf
sudo a2ensite PDFTools-ssl.conf

🛠️ Preparando o Ambiente

  1. Habilite os módulos necessários (caso ainda não tenha):
sudo a2enmod ssl
sudo a2enmod wsgi

🧪 Testando o Servidor Apache

  1. Teste a configuração:
sudo apachectl configtest

Se mostrar Syntax OK, então:

  1. Reinicie o Apache:
sudo systemctl restart apache2

🔎 Verificar

Acesse:

http://meusite.com → deve redirecionar para HTTPS

https://meusite.com → app Flask deve carregar com certificado válido

Clone this wiki locally