Artikel mit Tag xmpp

Eigener XMPP-Server: Neue Intermediate-Zertifikate bei Letsencrypt

Momentan ist durch die geänderten Nutzungsbedingungen von WhatsApp mal wieder einige Unruhe im Netz zum Thema Messenger. Da wird natürlich auch der ein oder andere Glaubenskrieg wieder ausgegraben, welches nun der sicherste und privateste Dienst für die Kommunikation mit anderen Menschen ist.

Bei mir läuft für unsere Familien-Kommunikation schon länger ein eigener XMPP-Server. Das hat den Vorteil, dass die Kinder auch in jüngeren Jahren schon mit uns chatten konnten und dass unsere Familienkommunikation auch unter uns bleibt, da kein Drittanbieter dabei involviert ist. Als Server nutze ich Ejabberd, der auf einer kleinen virtuellen Maschine läuft.

Nachdem ich heute morgen mit meiner Kaffeetasse zum Rechner geschlendert war, sah ich in Gajim, dass mein XMPP-Konto offline war. Ein Blick auf den Server zeigte, dass Ejabberd sich bei einem Neustart heute Nacht mit einem Fehler beim Lesen der Zertifikatsdatei verabschiedet hatte und nicht mehr lief.

Für den VServer hole ich mir bequem Zertifikate bei Letsencrypt. Dies geschieht über ein Skript, das wöchentlich am Sonntagmorgen läuft und bei Bedarf die Zertifikate erneuert. Ejabberd kann das eigentlich von Haus aus auch selbst machen, aber da ich die Zertifikate auch für den dort laufenden Webserver benötige, recycle ich sie auch gleich für den Chat-Server. Hierbei benötigt der XMPP-Dienst eine Datei mit der kompletten Keychain, ich kombiniere also den privaten Key und öffentlichen Key des Servers und das Intermediate-Zertifikat von Letsencrypt in einer PEM-Datei und lasse diese von Ejabberd auslesen. Und genau für das Intermediate-Zertifikat konnte nun kein privater Schlüssel mehr gefunden werden.

Ich wusste ja, dass Letsencrypt im letzten Monat auf ein neues Root-Zertifikat umgestellt hat, also lag die Vermutung nah, dass es etwas damit zu tun hatte. Nach ein wenig Recherche gelangte ich auf die Zertifikatsseite von Letsencrypt. Hier wird das aktuelle Intermediate-Zertifikat zum Download angeboten und ich stellte fest, dass die von mir verwendete Version “X3” nicht mehr verwendet wird und die Version “R3” nun aktuell ist. Obwohl der Job zum Erneuern der Zertifikate jede Woche läuft, wird die Erneuerung immer nur angestoßen, wenn der Ablauf in den nächsten 30 Tagen erfolgt. Somit war meine alte Konfiguration mit den Zertifikaten vom November immer noch gültig und erste heute morgen mit dem Update auf das neue Root-Zertifikat wurde meine selbstgebaute PEM-Datei ungültig.

Die Lösung war also einfach: Das aktuelle Intermediate-Zertifikat herunterladen und die Dateien neu zusammenführen, danach startete Ejabberd wieder ohne Fehler. Den Cronjob noch auf den neuen Dateinamen angepasst, damit sollte die Konfiguration auch in Zukunft wieder fehlerfrei funktionieren.