Zertifikate von Let’s Encrypt für Splunk Web
Zertifikate von Let’s Encrypt für Splunk Web
In diesem Blog-Beitrag lernst du, wie du Zertifikate von Let’s Encrypt für Splunk Web verwenden kannst.
Wir empfehlen dir, das begleitende YouTube-Video „Let’s Encrypt für Splunk Web – SSL-Zertifikate in fünf Minuten“ anzusehen, um visuelle Beispiele und eine detailliertere Erklärung zu erhalten.
Voraussetzungen
Zuerst wird sichergestellt, dass der Server über eine öffentlich erreichbare IP-Adresse verfügt und, dass wir Administratorzugriff darauf besitzen. Zusätzlich müssen wir auch die Firewall überprüfen, ob diese beispielsweise eingehenden Datenverkehr zulässt. Dazu aber später noch mehr.
Installation von Certbot
Eine sehr beliebte und einfache Möglichkeit bietet der Let’s Encrypt-Client Certbot. Sollte diese Anleitung für dein Betriebssystem nicht funktionieren, findest du hier einen Link zu Anleitungen für andere Betriebssysteme.
Wir verbinden uns zunächst über SSH mit unserem Server. Das machen wir natürlich mit einem User, der Adminrechte besitzt.
Unser erster Schritt ist snapd
zu in installieren. In unserem Fall funktioniert das über:
Hier können wir uns eine auf unser Betriebssystem angepasste Installationsanleitung anzeigen lassen.
Nach der Installation müssen wir noch sicherstellen, dass die aktuellste Version von snapd
installiert ist. Dazu führen wir einfach die folgenden Befehle aus:
Wenn wir snapd
mit einem Betriebssystem-Paketmanager wie apt, yum oder dnf installiert haben, dürfen wir nicht vergessen certbot-auto und die Betriebssystem-Pakete zu entfernen bevor wir den Certbot-Snap installieren. Dadurch wird sichergestellt, dass beim Ausführen des `certbot‘-Kommandos der Snap verwendet wird und nicht die Version aus dem Paketmanager des Betriebssystems. In unserem Fall führen wir also folgenden Befehl aus:
Dann führen wir die folgenden Befehle aus um Certbot zu installieren und um anschließend den Befehl certbot
ausführbar zu machen:
Um die nächsten Schritte durchführen zu können, müssen wir zuerst unsere Firewall überprüfen und eingehenden Datenverkehr auf Port 80/TCP zulassen.
Der Standardport für HTTP ist Port 80, was bedeutet, dass normalerweise unverschlüsselte Webserver auf diesem Port laufen. Diese müssten gestoppt werden, damit Certbot dann über diesen Port kommunizieren kann. Da Splunk aber auf Port 8000 läuft, ist das für uns nicht notwendig.
Je nachdem welche Lösung ihr nutzt, können die Befehle wie folgt oder anders aussehen:
Jetzt können wir Certbot mit dem folgenden Befehl ausführen und werden im Dialog aufgefordert den DNS unserer Webseite und eine E-Mail-Adresse anzugeben, unter der wir erreichbar sind, um automatisch benachrichtigt zu werden wenn unser Zertifikat dabei ist seine Gültigkeit zu verlieren.
Anschließend löschen wir die Regel wieder, die den eingehenden Datenverkehr auf Port 80 erlaubt.
Zertifikate für Splunk nutzbar machen
Unter ~/etc/letsencrypt/live//
finden wir nun die Zertifikate von Let’s Encrypt. Damit Splunk mit diesen Zertifikaten arbeiten kann, müssen wir fullchain.pem
und privkey.pem
in den Dateibaum unter Splunk kopieren. Dafür erstellen wir zunächst einen Ordner unter dem folgenden Pfad und kopieren die benötigten Zertifikate dorthin:
Wir wechseln in das Verzeichnis $SPLUNK_HOME/etc/system/local/
und bearbeiten die Datei web.conf
so, dass die richtigen Pfade auf die Zertifikate privkey.pem
und fullchain.pem
zeigen.
$SPLUNK_HOME/etc/system/local/web.conf:
Nach einem Neustart von Splunk, können wir beim Aufruf der Webseite im Browser das geschlossene Schloss links in der URL-Leiste sehen und wenn man darauf klickt, wird angezeigt, dass die Verbindung sicher und das Zertifikat gültig ist.
Automatisierte Erneuerung des Zertifikats einrichten
Wir erstellen einen Cronjob um eine automatisierte Erneuerung des Zertifikats für unsere Website einzurichten. In unserem Fall wollen wir jeden Sonntag um 2 Uhr nachts diesen Cronjob laufen lassen. Also führen wir den Befehl crontab -e
aus und schreiben folgende Zeile in die aufgerufene Datei:
Das Shell Skript, das für den Cronjob aufgerufen wird, ruft zunächst den Befehl zur Erneuerung des Zertifikats auf und testet dann, ob das Zertifikat tatsächlich erneuert wurde. Der Befehl erneuert das Zertifikat, nur wenn dieses eine Gültigkeit von 30 Tagen unterschreitet.
Wenn das Zertifikat dann tatsächlich erneuert wurde, kopieren wir die benötigten, neuen Zertifikate noch zu dem von Splunk verwendbaren Ort und stellen sicher, dass die neuen Dateien auch dem Splunk ausführenden User gehören. Dieser muss im folgenden natürlich noch ersetzt werden.