💾 Archived View for warpengineer.space › entries › cockpit-apache-reverse-proxy-setup.gmi captured on 2024-07-08 at 23:33:36. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-01-29)

-=-=-=-=-=-=-

I had a hard time finding the information I needed to get Cockpit to work right behind an Apache reverse proxy setup. So, I decided to collect everything I found here for the future.

At first, I tried to setup cockpit under the /cockpit path but it kept failing. Apparently, that path is reserved by Cockpit, so I switched to using /ckpt/ instead.

1. Create config file: `/etc/cockpit/cockpit.conf`

2. Add contents:

[WebService]
Origins = https://mydomain.com http://127.0.0.1:9090
ProtocolHeader = X-Forwarded-Proto
AllowUnencrypted = true
UrlRoot = /ckpt/

3. Restart Cockpit

4. Add Apache directives to chosen VirtualHost:

ProxyPreserveHost On
ProxyRequests Off
SSLProxyVerify None
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
SSLProxyCheckPeerExpire Off
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /ckpt/(.*) ws://127.0.0.1:9090/ckpt/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /ckpt/(.*) http://127.0.0.1:9090/ckpt/$1 [P,L]
ProxyPass /ckpt/ http://127.0.0.1:9090/ckpt/
ProxyPassReverse /ckpt/ http://127.0.0.1:9090/ckpt/

5. Restart Apache