PiKVM hinter Apache Reverse Proxy: Unterschied zwischen den Versionen
Aus znilwiki
BLinz (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
BLinz (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
||
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''<u>Changelog:</u>''' | '''<u>Changelog:</u>''' | ||
* 2021-01-29 erste Version | * 2021-01-29 erste Version | ||
* 2021-10-05 Regeln für Terminal hinzugefügt, funktioniert nun auch | |||
---- | ---- | ||
==Vorwort== | ==Vorwort== | ||
Hurra! mein PiKVM läuft! Sogar mit einem zusätzlichen 4 Port HDMI/USB KVM Switch! https://github.com/pikvm/pikvm<br> | Hurra! mein PiKVM läuft! Sogar mit einem zusätzlichen 4 Port HDMI/USB KVM Switch! https://github.com/pikvm/pikvm<br> | ||
Fehlt noch der Zugriff von extern darauf:<br> | |||
<br> | |||
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<br> | 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<br> | ||
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.<br> | 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.<br> | ||
Zeile 11: | Zeile 14: | ||
192.168.178.2 = IP-Adresse des Apache Reverse Proxy Linux Servers (Ubuntu 20.04) | 192.168.178.2 = IP-Adresse des Apache Reverse Proxy Linux Servers (Ubuntu 20.04) | ||
192.168.178.18 = IP-Adresse des PiKVM | 192.168.178.18 = IP-Adresse des PiKVM | ||
kvm.znil.net | kvm.znil.net = Subdomain unter welcher der PiKVM per Reverse Proxy erreichbar sein soll | ||
<br> | <br> | ||
---- | ---- | ||
Zeile 55: | Zeile 58: | ||
RewriteCond ${HTTP:CONNECTION} ^Upgrade$ [NC] | RewriteCond ${HTTP:CONNECTION} ^Upgrade$ [NC] | ||
RewriteRule .* wss:/192.168.178.18%{REQUEST_URI} [P,L] | RewriteRule .* wss:/192.168.178.18%{REQUEST_URI} [P,L] | ||
ProxyPass /extras/webterm/ttyd/ws wss://192.168.178.18/extras/webterm/ttyd/ws | |||
ProxyPass /extras/webterm/ttyd/ https://192.168.178.18/extras/webterm/ttyd/ | |||
ProxyPassReverse /extras/webterm/ttyd/ https://192.168.178.18/extras/webterm/ttyd/ | |||
ProxyPass / https://192.168.178.18/ | ProxyPass / https://192.168.178.18/ | ||
Zeile 82: | Zeile 89: | ||
<br> | <br> | ||
Jetzt müsste es gehen!<br> | Jetzt müsste es gehen!<br> | ||
Für die Verlängerung des Lets Encrypt Zertifikates empfehle ich euch [[Lets | Für die Verlängerung des Lets Encrypt Zertifikates empfehle ich euch [[Lets Encrypt Zertifikate erneuern mit Apache Reverse Proxy]] | ||
<br> | <br> | ||
---- | ---- | ||
==Kommentare== | ==Kommentare== | ||
<comments /> | <comments /> |
Aktuelle Version vom 5. Oktober 2021, 10:03 Uhr
Changelog:
- 2021-01-29 erste Version
- 2021-10-05 Regeln für Terminal hinzugefügt, funktioniert nun auch
Vorwort
Hurra! mein PiKVM läuft! Sogar mit einem zusätzlichen 4 Port HDMI/USB KVM Switch! https://github.com/pikvm/pikvm
Fehlt noch der Zugriff von extern darauf:
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 /extras/webterm/ttyd/ws wss://192.168.178.18/extras/webterm/ttyd/ws
ProxyPass /extras/webterm/ttyd/ https://192.168.178.18/extras/webterm/ttyd/
ProxyPassReverse /extras/webterm/ttyd/ https://192.168.178.18/extras/webterm/ttyd/
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 Encrypt Zertifikate erneuern mit Apache Reverse Proxy