Die Absicherung von Webdiensten und internen Systemen mittels SSL-Zertifikaten ist heute unverzichtbar. HTTPS ist längst zum Standard geworden, um Vertraulichkeit, Integrität und Authentizität von Daten im Internet zu gewährleisten. Doch die Verwaltung der SSL-Zertifikate kann besonders in kleinen bis mittleren IT-Umgebungen oder bei rein internen Netzwerken eine Herausforderung darstellen. Unternehmen und Enthusiasten, die weder auf kommerzielle Lösungen noch auf Content Delivery Networks wie Cloudflare angewiesen sein möchten, müssen häufig eigene Prozesse zur Zertifikatserneuerung und -verteilung implementieren. Die Selbstverwaltung von SSL-Zertifikaten erfordert daher sowohl technisches Verständnis als auch eine geeignete Automatisierung, um den Aufwand langfristig gering zu halten und Ausfälle zu vermeiden.
Das Problematische an klassischen SSL-Zertifikaten liegt häufig in der relativ kurzen Gültigkeitsdauer nicht-kommerzieller Zertifikate. Let's Encrypt beispielsweise stellt Zertifikate mit einer Laufzeit von 90 Tagen aus, was regelmäßige Erneuerungen erfordert. Während gewerbliche Anbieter häufig längere Laufzeiten ermöglichen, sind sie mit Kosten verbunden und passen nicht immer zu jedem Anwendungsfall. Zudem ist die manuelle Erneuerung mit einem signifikanten Mehraufwand verbunden, insbesondere wenn viele Domains oder Wildcard-Zertifikate verwaltet werden. Wildcard-Zertifikate hingegen bieten den Vorteil, alle Subdomains mit einem einzigen Zertifikat abzudecken.
Allerdings ist die Validierung mittels DNS-01-Challenge aufwendiger umzusetzen als die HTTP-01-Challenge, da hierfür Zugriffe auf DNS-Zoneneinträge nötig sind, was tiefere Kenntnisse über DNS-Provider und deren API-Funktionen voraussetzt. Als weiterer Aspekt stellt sich die sichere Verteilung der Zertifikate an verschiedene Systeme und Dienste. Die Herausforderung ist sicherzustellen, dass private Schlüssel geschützt bleiben und lediglich autorisierte Systeme Zugriff darauf haben. Eine ungeschützte Verteilung kann schnell zu Sicherheitslücken führen. Viele Betreiber greifen daher auf Cloudflare und ähnliche Services zurück, welche eine automatische Zertifikatskonfiguration bereitstellen.
Dennoch gibt es zahlreiche Szenarien, bei denen ein solcher Dienst nicht gewünscht oder möglich ist, zum Beispiel bei internen Netzwerken, speziellen Infrastrukturen oder strengen Compliance-Anforderungen. Die Entwicklung eines eigenen Workflows zur automatisierten Zertifikatsanforderung und -verteilung kann hier Abhilfe schaffen. Ein vielversprechender Ansatz ist die Kombination aus GitLab CI/CD und Cloudflare Workers in Verbindung mit dem Key-Value-Storage (KV) von Cloudflare. Dieses Setup ermöglicht die regelmäßige, automatisierte Beantragung und Aktualisierung von Zertifikaten, deren sichere Ablage in einer Clouddatenbank und das kontrollierte Abrufen durch autorisierte Geräte via API. Die Abfolge beginnt mit der Nutzung von GitLab CI/CD für die Ausführung von Skripten, welche die Zertifikatsanforderung automatisieren.
Hierbei wird die DNS-01-Challenge eingesetzt, um ein Wildcard-Zertifikat für eine Domain zu erlangen. Für die Einbindung und Ausführung des Prozesses sind verschiedene Parameter erforderlich, wie etwa die E-Mail-Adresse für den Certbot, die Domain, sowie spezielle API-Tokens für die Interaktion mit Cloudflare. Die API-Tokens unterscheiden sich dabei je nach Zweck: eines ist für die Verwaltung der DNS-Einträge bestimmt, um die Challenge zu erfüllen, während ein weiteres ausschließlich die Berechtigung erhält, die gewonnenen Zertifikate in Cloudflare Workers KV zu speichern. Die Repository-Einstellungen in GitLab erlauben es, diese Variablen sicher zu speichern und zeitgesteuerte Pipelines zu starten, so dass Zertifikate regelmäßig, zum Beispiel monatlich, automatisch aktualisiert werden können. Im nächsten Schritt werden die frisch erteilten Zertifikate vom CI/CD-Prozess in das Cloudflare KV hochgeladen.
Dieses Key-Value-Storage fungiert als sichere zentrale Ablage. Hier wird jedes Zertifikat base64-kodiert übermittelt, um eine saubere Speicherung der Daten zu gewährleisten. Eine Cloudflare Worker-Funktion dient als API-Schnittstelle für den Zugriff auf die Zertifikate. Diese Worker können individuell programmiert werden und sind in der Lage, HTTP-Anfragen zu empfangen, eine Authentifizierung via spezieller Header durchzuführen und bei erfolgreicher Authorisierung die angeforderten Zertifikatdaten zurückzugeben. Die Authentifizierung ist dabei essenziell, um den Zugriff nur auf vertrauenswürdige Systeme zu beschränken.
Auf der Client-Seite, beispielsweise bei Devices mit einem Nginx-HTTP-Server, wird einfach eine kleine Shell-Skript-Lösung eingesetzt, die regelmäßig - gesteuert durch systemd-Timer - die Zertifikate von der Cloudflare Worker API abruft. Anschließend wird der Nginx-Server neu geladen, um die frischen Zertifikate zu nutzen. Die Automatisierung durch diese Pipeline eliminiert den manuellen Aufwand zur Verlängerung und Verteilung, minimiert Fehlerquellen und erhöht die Sicherheit. Neben den Vorteilen bietet die Eigenverwaltung von SSL-Zertifikaten auch Raum für individuelle Anpassungen. So kann festgelegt werden, welche Hostnamen, Subdomains oder Dienste mit Zertifikaten versorgt werden, welche Ablaufzeiten sinnvoll sind und wie der Verteilungsprozess gestaltet wird – abseits der Einschränkungen von Cloud-Diensten oder kommerziellen Anbietern.
Besonders für Unternehmen, die wert auf Datenschutz und vollständige Kontrolle legen, ist dieser Ansatz attraktiv. Natürlich setzt die Selbstverwaltung gewisse technische Kenntnisse voraus. Die Einrichtung von GitLab CI/CD mit Secrets und Variablen, das Verständnis der Cloudflare API und der Worker-Umgebung sowie Kenntnisse im Umgang mit DNS-01-Challenges sind notwendig. Auch sollte man mit Scripts in einer Linux-Umgebung vertraut sein, um die automatische Erneuerung und Integration auf Client-Seite sicherzustellen. Wer diesen Aufwand erarbeitet, profitiert langfristig von einem stabilen, leicht erweiterbaren System, das die Sicherheit der Kommunikationswege signifikant verbessert.
Ein weiteres Plus ist die Offenheit und Flexibilität. Der beschriebene Workflow wurde vom Entwickler als Open-Source-Projekt bereitgestellt, sodass Interessierte diesen Ansatz übernehmen, anpassen und weiterentwickeln können. Durch die Nutzung von modernen Cloud-Technologien und Automatisierungsplattformen wird die Verwaltungslast drastisch verringert und das Risiko von Zertifikatsabfällen, die zu Ausfällen oder Warnungen bei Besuchern führen, minimiert. Insgesamt stellt die Selbstverwaltung von SSL-Zertifikaten einen wichtigen Schritt in die Unabhängigkeit für Betreiber von Websites und Diensten dar, die auf größtmögliche Sicherheit und Kontrolle setzen möchten. Durch die Automatisierung über GitLab CI/CD und Cloudflare Workers gelingt es, den Prozess trotz der technischen Herausforderungen praktikabel und wartungsarm zu gestalten.
So kann jeder Betreiber, ob Einsteiger oder erfahrener Administrator, die Vorteile von HTTPS voll ausschöpfen – ohne auf externe Dienstleister angewiesen zu sein und mit einem Höchstmaß an Flexibilität und Sicherheit. Die Zukunft sicherer Web-Kommunikation beruht auf solchen innovativen Ansätzen, bei denen die Prinzipien von Offenheit, Automatisierung und Kontrolle Hand in Hand gehen.