El paso de proxy Apache no funciona con HTTPS

El paso de proxy Apache no funciona con HTTPS

Quiero redirigir una determinada subruta a una aplicación backend que se ejecuta en el puerto 19011. Mi archivo de configuración ( /etc/apache2/sites-available/my_domain.conf) tiene este aspecto:

<VirtualHost *:80>
    ServerName my_domain
    DocumentRoot /var/www/my_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    ProxyPass /my_subpath/ http://localhost:19011/
    ProxyPassReverse /my_subpath/ http://localhost:19011/
</VirtualHost>

<VirtualHost *:443>
    SSLEngine On
    SSLProxyEngine On
    SSLCertificateFile /etc/letsencrypt/live/my_domain/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/my_domain/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
    
    ServerName my_domain
    DocumentRoot /var/www/my_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    ProxyPass /my_subpath/ http://localhost:19011/
    ProxyPassReverse /my_subpath/ http://localhost:19011/
</VirtualHost>

Esta configuración funciona con HTTP, pero no con HTTPS:

  • http://my_domain/my_subpathva a la aplicación backend según lo previsto, mientras que
  • https://my_domain/my_subpathregresa 404

Soy un novato de Apache, así que no sé por qué esto no funciona. Tampoco veo ningún error en los registros de Apache. ¿Qué me falta en el archivo conf?

Versiones:

  • Apache: 2.4.29
  • Sistema operativo: Ubuntu 18.04.5

Respuesta1

Resultó que no había nada malo con mi archivo de configuración. Había otro archivo de configuración llamado my_domain-le-ssl.conf, /etc/apache2/sites-availableque se creó automáticamente después de que creé el certificado SSL con Letsencrypt. Ese archivo conf también contenía un host virtual para el puerto 443, y Apache lo estaba usando para atender solicitudes SSL.

En caso de duda, ejecute sudo apachectl -Spara ver la configuración de su host virtual activo. En mi caso me devolvió algo como esto:

*:80 my_domain (/etc/apache2/sites-enabled/my_domain.conf:1)
*:443 my_domain (/etc/apache2/sites-enabled/my_domain-le-ssl.conf:2)
*:443 my_domain (/etc/apache2/sites-enabled/my_domain.conf:10)

información relacionada