Apache2

For our examples we will use the following:

  • MAD runs on localhost

  • madmin_port is port 5000

  • ws_port is 8080

  • mitmreceiver_port is 8000

  • We wish to access MADmin at madmin.example.com

  • We wish to proxy the RGC traffic to rgc.example.com

  • We wish to proxy the PogoDroid traffic to pd.example.com

  • The FQDN (Domain) we are using is example.com

  • SSL Certificate is located at /etc/letsencrypt/live/example.com/cert.pem

  • SSL Certificate Key is located at /etc/letsencrypt/live/example.com/privkey.pem

Make sure that the module proxy and rewrite is installed and enabled (a2enmod proxy proxy_http).

Keep in mind to configure the DNS settings correctly to make the three subdomains work.

MADmin

MADmin URL: https://madmin.example.com

<VirtualHost *:443>

    ProxyPreserveHost On
    ProxyRequests Off

    ServerName madmin.example.com
    ProxyPass / http://localhost:5000/
    ProxyPassReverse / http://localhost:5000/

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

    ErrorLog ${APACHE_LOG_DIR}/madmin_error.log
    CustomLog ${APACHE_LOG_DIR}/madmin_access.log combined
</VirtualHost>

RGC

Please install the websocket apache module: a2enmod proxy_wstunnel

RGC URL: wss://rgc.example.com

<VirtualHost *:443>
    ServerName rgc.example.com

    ProxyPass / ws://127.0.0.1:8080/
    ProxyPassReverse / ws://127.0.0.1:8080/

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

    ErrorLog ${APACHE_LOG_DIR}/rgc_error.log
    CustomLog ${APACHE_LOG_DIR}/rgc_access.log combined
</VirtualHost>

PogoDroid

PogoDroid URL: https://pd.example.com

<VirtualHost *:443>
    ServerName pd.example.com

    ProxyPass / http://127.0.0.1:8000/
    ProxyPassReverse / http://127.0.0.1:8000/

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

    ErrorLog ${APACHE_LOG_DIR}/pd_error.log
    CustomLog ${APACHE_LOG_DIR}/pd_access.log combined
</VirtualHost>