Configure IDP with Docker and Apache

Reverse proxy to a Docker container running the Miracl SSO service.

1. Verify the Docker Container

Confirm that the Docker container running Miracl SSO is up:

docker ps

The service should be running on localhost:8500.

2. Update Apache Configuration

Edit the Apache virtual host configuration:

sudo nano /etc/apache2/sites-available/idp.cymeg.com.conf

Add the following for HTTP (port 80) and HTTPS (port 443) reverse proxy:

<VirtualHost *:80>
    ServerName idp.cymeg.com

    ProxyPass / http://localhost:8500/
    ProxyPassReverse / http://localhost:8500/

    ErrorLog /var/log/virtualmin/idp.cymeg.com_error_log
    CustomLog /var/log/virtualmin/idp.cymeg.com_access_log combined
</VirtualHost>

<VirtualHost *:443>
    ServerName idp.cymeg.com

    SSLEngine on
    SSLCertificateFile /etc/ssl/virtualmin/.../ssl.combined
    SSLCertificateKeyFile /etc/ssl/virtualmin/.../ssl.key
    SSLCACertificateFile /etc/ssl/virtualmin/.../ssl.ca

    ProxyPass / http://localhost:8500/
    ProxyPassReverse / http://localhost:8500/

    ErrorLog /var/log/virtualmin/idp.cymeg.com_error_log
    CustomLog /var/log/virtualmin/idp.cymeg.com_access_log combined
</VirtualHost>

3. Enable Apache Proxy Modules

sudo a2enmod proxy
sudo a2enmod proxy_http

4. Restart Apache

sudo systemctl restart apache2

5. Test the Configuration

Access http://idp.cymeg.com and https://idp.cymeg.com to verify traffic is proxied correctly.

Result: Setup complete. Traffic is now proxied to the Docker container.