Tip: PLUCS mit Letsencrypt SSL Zertifikat

german
plucs

#1

Hallo allerseits,

falls jemand anders noch das Bedürfnis hat, einen Chatclient mit PLUCS zu verwenden, ohne dabei eine Zertifikatswarnung zu bestätigen, hier meine Vorgehensweise…

Standardmäßig nutzt PLUCS das UCS Zertifikat, damit kann man innerhalb der Domäne zwar ganz gut leben, aber beim Zugriff von extern mit fremden Geräten gibt es eine Warung, weil dem UCS Root Zertifkat nicht getraut wird. Jetzt kann man das UCS Root Zertifikat auf dem Client installieren oder ein öffentliches SSL Zertifikat nutzen, z.B. ein kostenloses von Letsencrypt.
Dazu befindet sich im Wiki schon ein Cool Solutions Artikel:
http://wiki.univention.de/index.php?title=Cool_Solutions_-_Let's_Encrypt

Wenn das SSL Zertifikat installiert ist, genügt es, zwei Zeilen im init Script von PLUCS zu ändern oder zu ersetzen:
nano /etc/init.d/plucs
dann diese zwei Zeilen finden und auskommentieren (bei mir Zeile 91/92):

cat /etc/univention/ssl/${MY_HOST}.${MY_DOM}/private.key
grep -A100 -F 'BEGIN CERTIFICATE' /etc/univention/ssl/${MY_HOST}.${MY_DOM}/cert.pem

und diese zwei Zeilen einfügen

cat /etc/univention/letsencrypt/domain.key
grep -A100 -F 'BEGIN CERTIFICATE' /etc/univention/letsencrypt/chained.pem

Der Common Name oder SAN des Zertifikats muss mit der XMPP Domäne übereinstimmen!
z.B. Hostname und SSL Cert lauten: xmpp.firma.de
dann betrachtet der Chatclient das Zerifikat für gültig, wenn auch die XMPP Domäne xmpp.firma.de lautet (nicht nur firma.de!)
Ob ein Wildcard Zertifikat hier funktionieren würde, habe ich nicht probiert. Aber ich glaube, das geht mit Letsencrypt sowieso nicht.

frohe Mainachten :slight_smile:
Dirk


#2

Hallo,

für eigene Zertifikate hatten wir die UCR-Variablen “plucs/certfile” und “plucs/s2s/certfile” gedacht. Die werden vermutlich auch mit Letsencrypt funktionieren, ein Wildcard ist (sonst) definitiv möglich.
Bei Nutzung von Letsencrypt mit anderen Diensten als Apache/Dovecot/Postfix sollte man beachten, dass der Dienst dann auch das erneuerte Zertifikat bekommt. Wenn man das Init-Skript patcht wird man manuell neustarten müssen. Die kühle Lösung von Univention macht das über Skripte in /etc/univention/letsencrypt/setup.d und /etc/univention/letsencrypt/post-refresh.d


#3

Hallo ahrnke,

wie mir hier die UCR Variablen nützlich sein könnten verstehe ich nicht. Das knifflige an dem ejabberd Zertifikat ist ja, dass der private Key in der .pem Datei enthalten sein muss.

If you want to provide a different certificate here it must adhere to the requirements of the XMPP daemon: it is required in PEM format, with the private key and the certificate in one file.
https://downloads.it25.de/plucs_doc/manual_en.html

In dem Initscript wird aus private.key und cert.pem --> ejabberd.pem generiert.
Das könnte man natürlich einmalig manuell machen, die erzeugte .pem Datei in einem Ordner ablegen und diesen Pfad in der UCR-Variable hinterlegen. Aber das Letsencrypt Zertifikat wird nach spätestens 90 Tagen erneuert. Für mein Verständnis müsste man diesen Vorgang dann immer wieder machen.

Am coolsten wäre es, wenn die kühle Lösung von Univention PLUCS gleich mit berücksichtigen würde.

Dass ein Wildcard Zertifikat von kommerziellen Anbietern funktioniert, denke ich auch. Aber Letsencrypt hat so eins gar nicht im “Angebot”

Gruß,
Dirk