Apache2 Proxypass, SSL and Flask

If you are running your app on a machine with a running apache and want to reach it via your domain without any port specified within the url, then you maybe should use proxypass. In my situation I wanted to rech my Flask app also if i specify the port since it was running with ssl anyway.

All you have to do is setting up your site config for apache correctly:

Listen 80
<VirtualHost *:80>
  ServerName [[YOURDOMAIN]]
  RewriteEngine On
  #redirect port 80 requests
  RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>

Listen 443
<VirtualHost *:443>
  ServerName [[YOURDOMAIN]]
  SSLCertificateFile [[PATHTOYOURCERTFILE]]/cert.pem
  SSLCertificateKeyFile [[PATHTOYOURCERTKEYFILE]]/privkey.pem
  Include /etc/letsencrypt/options-ssl-apache.conf
  SSLCertificateChainFile [[PATHTOYOURCERTCHAINFILE]]/chain.pem

  ErrorLog ${APACHE_LOG_DIR}/yourapp-error.log
  CustomLog ${APACHE_LOG_DIR}/yourapp-access.log combined

  SSLProxyEngine on
  ProxyRequests On
  ProxyPreserveHost On
  <Location />
        ProxyPass https://127.0.0.1:[[FLASKAPPPORT]]/
        ProxyPassReverse  https://127.0.0.1:[[FLASKAPPPORT]]/
        ProxyPassReverseCookiePath / /
        Order allow,deny
        Allow from all
  </Location>
</VirtualHost>