Frage: Let's Encrypt für mehrere Systeme nutzen

german
letsencrypt

#1

Folgende Herausforderung:

Um die Mattermost App auf dem Smart-Phone benutzen zu können, benötigt man eine öffentliches Zertifikat. Dazu habe ich Let’s Encrypt installiert. Für die Kommunikation wird Port 80 benötigt. Ich würde jedoch auch gerne für die Kopano WebApp ein gültiges Zertifikat verwenden. Kopano ist jedoch auf einem anderen Server/System installiert. Auch hier ergibt sich durch die Freigabe von Port 80 der Zugriff auf die UCS Administration.
Frage - Gibt es die Möglichkeit das Let’s Encrypt Zertifikat zentral abzulegen, so das auch weitere Systeme dieses benutzen können?

Freue mich über jede Rückmeldung.
Vielen Dank vorab
Pepe


#2

Huhu,

normalerweise nutzt man auf den einen Webserver, der über Port 443 direkt vom Internet aus erreichbar ist, schlicht als Reverse Proxy für alle weiteren internen Server, z.B. indem man den Pfad /webapp/ auf den internen Kopano-Server proxiet. Damit muss man sich auf dem Kopano-Server nicht mit Let’s Encrypt herumschlagen.

Möchte man dann die Kommunikation zwischen Proxy-Apache und Kopano-Apache verschlüsselt laufen lassen, so ist das eigentlich kein Problem, da ja eh jedes Univention-System ein SSL-Zertifikat der Univention-CA besitzt. Der Kopano-Apache nutzt das, und auf dem Proxy-Apache-System sollte das Univention-CA eh schon als vertrauenswürdige CA im System hinterlegt sein.

Gruß


#3

Hi - über den Ansatz mit dem Revers-Proxy hatte ich auch schon nachgedacht. Da UCS aber selber keinen als Paket anbietet (richtig/falsch), hatte ich das dann kurz über einen Ubuntu Server versucht - was aber irgendwie überhaupt nicht funktioniert hat.
Hast Du - oder jemand anderes hier eine Blaupause?
Vielen Dank vorab
Pepe


#4

Huhu,

hä? Apache selber kann Reverse Proxy machen, genau der Apache, bei dem bei dir ohnehin schon die Anfragen ankommen. Für die Kopano ist das Proxien super trivial:

ProxyPass        /webapp/ https://kopano.you.domain/webapp/
ProxyPassReverse /webapp/ https://kopano.you.domain/webapp/

Du brauchst keine besondere Anwendung oder gar einen dritten Server dazu.


#5

OK - vielleicht hätte ich noch kurz ausführen sollen, dass es derzeit keinen dedizierten Webserver bei mir gibt.
Da wir das Setup eines dedizierten Webservers der von extern erreichbar ist (443) und dann die Anfragen auf die unterschiedlichen Systeme verteilt - und nach außen hin ein offizielles Zertifikat hat - gefällt, werde ich gleich mal einen solchen UCS Member-Server aufsetzen.
Wenn ich das dann richtig verstanden habe, muss ich diesen dann als Reverse-Proxy konfigurieren - für Kopano wie folgt:

ProxyPass        /webapp/ https://kopano.you.domain/webapp/
ProxyPassReverse /webapp/ https://kopano.you.domain/webapp/

Kurze Frage - wo genau wird denn dieser Eintrag hinzugefügt - sorry bin halt nur UCS Anfänger :sleepy:
Beste Grüße
Pepe


#6

Das hat erst mal nichts mit Univention zu tun, sondern rein mit Apache-Konfiguration. Da Univention auf Debian basiert, greift jede Anleitung, wie man Apache unter Debian konfiguriert. Vereinfacht gesagt:

  • eine Datei in /etc/apache2/conf-available anlegen & dort die Zeilen reinschreiben,
  • Datei nach /etc/apache2/conf-enabled symlinken und
  • Apache neu laden lassen (z.B. systemctl reload apache2)

#7

Vielen Dank erst einmal für die Unterstützung!
Für Kopano konnte ich den Revers-Proxy wie folgt umsetzen:

cd /etc/apache2/conf-available

nano proxy.conf

Proxy Setup Kopano WebApp

ProxyPass /webapp/ https://192.xxx.xxx.xxx/webapp/
ProxyPassReverse /webapp/ https://192.xxx.xxx.xxx/webapp/

ln -s /etc/apache2/conf-available/proxy.conf /etc/apache2/conf-enabled/proxy.conf

a2enconf proxy.conf

systemctl reload apache2

Für Mattermost erhalte ich bei gleichem Ansatz nur eine “leer Seite” (keine Fehlermeldung)

Proxy Setup Mattermost

ProxyPass /mattermost/ https://192.xxx.xxx.xxx:8234/
ProxyPassReverse /mattermost/ https://192.xxx.xxx.xxx:8234/

Ich vermute mal, dass hier noch irgendwo etwas fehlt ;-(

Hat einer eine Idee?
Vielen Dank vorab
Pepe


#8

Ja, Mattermost selber braucht da einige Einstellungen. Es gibt dafür Anleitungen.


#9

Update: Da die Proxy-Reverse Anpassunegn für mich als eher Leihe zu Umfangreich sind - und auch von Mattermost nur als “Beispielhaft” angegeben werden (also man nach einem Update vielleicht dann wieder anpassen muss), habe ich mich dafür entschieden den Mattermost Server als Revers-Proxy für die anderen Anwendungen zu verwenden.
Auf dem Server läuft auch bereits Let’s Encrypt - somit waren die Anpassungen minimal.
Anyway - die Frage ob man Let’s Encryt (über nur eine öffentlich IP) auch auf mehreren System betreiben kann, ist noch offen.
Beste Grüße
Pepe


#10

Grundsätzlich ist das möglich, aber halt nicht mit Univention Boardmitteln. Man könnte z.B. ein zentrales System zur Zertifikatserstellung nutzen und dann die generierten Zertifikate auf andere System verteilen. Selbst verwende ich für Letsencrypt https://github.com/lukas2511/dehydrated und dieses bietet einen “hooks” Mechanismus um nach Update eines Zertifikats weitere Aktionen anzustoßen.

Eventuell einfacher ist aber die Verifikation nicht über http, sondern mittels DNS durchzuführen. Dann musst Port 80 nicht für das anfragende System öffentlich erreichbar sein.