PiKVM hinter Apache Reverse Proxy: Unterschied zwischen den Versionen
Aus znilwiki
BLinz (Diskussion | Beiträge) K (→Vorwort) |
BLinz (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
||
Zeile 8: | Zeile 8: | ||
<br> | <br> | ||
In diesem Beispiel gilt folgenden | In diesem Beispiel gilt folgenden | ||
192.168. | 192.168.178.2 = IP-Adresse des Apache Reverse Proxy Linux Servers (Ubuntu 20.04) | ||
192.168. | 192.168.178.18 = IP-Adresse des PiKVM | ||
kvm.znil.net = Subdomain unter welcher der PiKVM per Reverse Proxy erreichbar sein soll | kvm.znil.net = Subdomain unter welcher der PiKVM per Reverse Proxy erreichbar sein soll | ||
<br> | <br> | ||
Zeile 27: | Zeile 27: | ||
mit folgendem Inhalt:<br> | mit folgendem Inhalt:<br> | ||
<source> | <source> | ||
<VirtualHost 192.168. | <VirtualHost 192.168.178.2:80> | ||
# Umleitung http zu https | # Umleitung http zu https | ||
ServerName kvm.znil.net | ServerName kvm.znil.net | ||
Zeile 36: | Zeile 36: | ||
</VirtualHost> | </VirtualHost> | ||
<VirtualHost 192.168. | <VirtualHost 192.168.178.2:443> | ||
ServerName kvm.znil.net | ServerName kvm.znil.net | ||
ServerAdmin webmaster@kvm.znil.net | ServerAdmin webmaster@kvm.znil.net | ||
Zeile 53: | Zeile 53: | ||
RewriteCond ${HTTP:UPGRADE} ^WebSocket$ [NC] | RewriteCond ${HTTP:UPGRADE} ^WebSocket$ [NC] | ||
RewriteCond ${HTTP:CONNECTION} ^Upgrade$ [NC] | RewriteCond ${HTTP:CONNECTION} ^Upgrade$ [NC] | ||
RewriteRule .* wss:/192.168. | RewriteRule .* wss:/192.168.178.18%{REQUEST_URI} [P,L] | ||
ProxyPass / https://192.168. | ProxyPass / https://192.168.178.18/ | ||
ProxyPassReverse / https://192.168. | ProxyPassReverse / https://192.168.178.18/ | ||
<Location /api/ws> | <Location /api/ws> | ||
Order allow,deny | Order allow,deny | ||
Allow from all | Allow from all | ||
ProxyPass wss://192.168. | ProxyPass wss://192.168.178.18/api/ws | ||
ProxyPassReverse wss://192.168. | ProxyPassReverse wss://192.168.178.18/api/ws | ||
</Location> | </Location> | ||
Zeile 69: | Zeile 69: | ||
</source> | </source> | ||
Ihr müsste also alle | Ihr müsste also alle | ||
* <code>192.168. | * <code>192.168.178.2</code> durch die lokale IP-Adresse von eurem Apache Revers Proxy ersetzen | ||
* <code>192.168. | * <code>192.168.178.18</code> durch die IP-Adresse eures PiKVM ersetzen | ||
* <code>kvm.znil.net</code> durch eure Domäne/Subdomäne ersetzen | * <code>kvm.znil.net</code> durch eure Domäne/Subdomäne ersetzen | ||
* <code>webmaster@kvm.znil.net</code> durch eine eurer Email-Adressen ersetzen | * <code>webmaster@kvm.znil.net</code> durch eine eurer Email-Adressen ersetzen |
Version vom 29. Januar 2021, 22:33 Uhr
Changelog:
- 2021-01-29 erste Version
Vorwort
Ich betreibe eigentlich immer alles unter einer jeweils eigenen Subdomain hinter einem Apache Revers Proxy. Dieser verwaltet dann auch die dazu passenden Lets Encrypt Zertifikate
Dementsprechent wollte ich auch meinen PiKVM so erreichbar machen, scheiterte aber zunächst an der WebSocket Konfiguration. Ein wenig davon kannte ich schon Gucamole, aber es zickte Anfangs rum.
Wie so oft musste ich mir die Lösung aus vielen Quellen zusammensuchen
In diesem Beispiel gilt folgenden
192.168.178.2 = IP-Adresse des Apache Reverse Proxy Linux Servers (Ubuntu 20.04) 192.168.178.18 = IP-Adresse des PiKVM kvm.znil.net = Subdomain unter welcher der PiKVM per Reverse Proxy erreichbar sein soll
Voraussetzungen Apache Reverse Proxy
Folgende Module des Apache müssen aktiviert sein:
a2enmod rewrite a2enmod proxy_http a2enmod ssl a2enmod proxy_wstunnel
Konfiguration der Subdomain
Hier eine eigene Konfigurationsdatei, angelegt als
/etc/apache2/sites-available/kvm.znil.net.vhost
mit folgendem Inhalt:
<VirtualHost 192.168.178.2:80>
# Umleitung http zu https
ServerName kvm.znil.net
ServerAdmin webmaster@znil.net
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
<VirtualHost 192.168.178.2:443>
ServerName kvm.znil.net
ServerAdmin webmaster@kvm.znil.net
SSLEngine on
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCertificateFile /etc/letsencrypt/live/kvm.znil.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/kvm.znil.org/privkey.pem
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
RewriteEngine on
RewriteCond ${HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond ${HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* wss:/192.168.178.18%{REQUEST_URI} [P,L]
ProxyPass / https://192.168.178.18/
ProxyPassReverse / https://192.168.178.18/
<Location /api/ws>
Order allow,deny
Allow from all
ProxyPass wss://192.168.178.18/api/ws
ProxyPassReverse wss://192.168.178.18/api/ws
</Location>
ProxyRequests off
</VirtualHost>
Ihr müsste also alle
*192.168.178.2
durch die lokale IP-Adresse von eurem Apache Revers Proxy ersetzen *192.168.178.18
durch die IP-Adresse eures PiKVM ersetzen *kvm.znil.net
durch eure Domäne/Subdomäne ersetzen *webmaster@kvm.znil.net
durch eine eurer Email-Adressen ersetzen */etc/letsencrypt/live/kvm.znil.net/
mit den Pfaden zu eurem Zertifikat ersetzen
Jetzt könnt die die Seite noch aktivieren
a2ensite kvm.znil.net.vhost
und den Apache neu starten:
systemctl restart apache2.service
Jetzt müsste es gehen!
Für die Verlängerung des Lets Encrypt Zertifikates empfehle ich euch Lets Encrypte Zertifikate erneuern mit Apache Reverse Proxy