Tutorial: Bloonix mit Let’s Encrypt-Zertifikaten

Seit inzwischen vier Jahren überwache ich meine Server mit der grandiosen Monitoring-Lösung Bloonix. Bis heute habe ich dafür ein SSL-Zertifikat von StartSSL benutzt, welches aber bald ablaufen sollte und eine Verlängerung war für mich aus diversen Gründen indiskutabel.

Ich machte mich also auf den Weg, meine Bloonix-Instanz vollständig mit einem SSL-Zertifikat von Let’s Encrypt auszustatten, wie ich es auch hier im Blog benutze. Da ich bei der Konfiguration ein paar Stolpersteine überwinden musste, möchte ich den von mir gegangenen Weg kurz aufzeigen.

Konfiguration des Webservers

Bloonix nutzt standardmäßig den nginx-Webserver, um das Webinterface zur Verfügung zu stellen. Das machte ich mir zu Nutze, um die Challenges von Let’s Encrypt einfach beantworten zu können. Wir bearbeiten die /etc/bloonix/webgui/nginx.conf und fügen diesen Block in den Server-Abschnitt für Port 443 ein.

Am Anfang der Konfiguration fügen wir außerdem einen Konfigurationsabschnitt für Port 80 (ohne SSL) ein, der später alle Anfragen auf Port 443 weiterleitet.

Die komplette Konfiguration sollte nun wie folgt aussehen:

Erläuterung: wir legen ein Alias für /.well-known an, damit die vom Certbot erstellten Challenge-Dateien für Let’s Encrypt korrekt ausgeliefert werden können.

Nun legen wir den in der Konfiguration eingetragenen Ordner an und starten den Webserver neu.

Natürlich kann man auch einen anderen Ordner als Speicherort für die Challenge-Dateien nutzen.

Certbot-Installation

Ich nutze Debian Jessie und habe somit zuerst das jessie-backports Repository in meine /etc/apt/sources.list eingebunden.

Weitere Informationen zu den Backports findet man auf der offiziellen Website. Nach einem apt-get update können wir den certbot-Client ganz einfach installieren:

Let’s Encrypt hat außerdem eine Website eingerichtet, auf der auch Anleitungen für andere Distributionen zu finden sind.

Zertifikatsanforderung

Um das Zertifikat für unsere Domain anzufordern, führen wir certbot mit der folgender Konfiguration aus:

Die zu sichernde Domain ist natürlich entsprechend anzupassen. Außerdem ist es wichtig, dass die Domain korrekt per A-Record auflöst und die Let’s Encrypt-Server den Server problemlos erreichen. Als Antwort sollten wir nun eine Bestätigung der Let’s Encrypt-Server haben, außerdem sollte das Zertifikat korrekt unter /etc/letsencrypt/live/monitoring.example.org/ abgelegt worden sein.

Nun müssen wir noch dem Bloonix-User Leserechte auf das Verzeichnis mit den SSL-Zertfikaten geben:

SSL-Konfiguration des Webservers

In der oben bereits angepassten /etc/bloonix/webgui/nginx.conf passen wir nur noch die Pfade zum SSL-Zertifikat an (geänderte Zeilen sind markiert):

Nach einem Neustart des nginx sollte das Bloonix-Webinterface bereits korrekt per SSL erreichbar sein – ohne Warnmeldungen!

SSL-Konfiguration des Bloonix-Servers

Der letzte Schritt meines kleinen Projekts besteht daraus, dem Bloonix-Server mitzuteilen, dass er das neue Zertifikat nutzen soll. Hierzu bearbeiten wir die /etc/bloonix/server/main.conf und passen die Optionen ssl_key_file und ssl_cert_file entsprechend an:

Ein beherzter Neustart des Bloonix-Servers sollte keine Probleme verursachen. Zur Sicherheit reicht es, kurz das Log unter /var/log/bloonix/bloonix-server.log zu prüfen.

Erneuerung des SSL-Zertifikats

Zwar hat die Installation von certbot bereits einen Cronjob für die Verlängerung der Zertifikate eingerichtet, allerdings bringt uns das ohne entsprechenden Neustart der zugehörigen Dienste nicht viel. Wir passen die Datei /etc/cron.d/certbot also entsprechend an und teilen Certbot mit, nach dem Renewal der Zertifikate die Dienste nginx und bloonix-server neuzustarten.

Das war auch schon die ganze Hexerei. Die SSL-Zertifikate werden nun korrekt erneuert und Bloonix arbeitet vollständig mit den kostenlosen Let’s Encrypt-Zertifikaten zusammen.


Bei Fragen, Anregungen zu meinem Tutorial oder Problemen mit der Anleitungen, hinterlassen Sie einfach einen Kommentar. Bei Problemen mit der Monitoring-Software Bloonix versuchen Sie es bitte im offiziellen Support-Forum.

Schreibe einen Kommentar