Zum Hauptinhalt springen

SSL ohne Ausfallzeiten auf einem VPS installieren

· 6 Minuten Lesezeit
Customer Care Engineer

Veröffentlicht am 9. November 2026

SSL ohne Ausfallzeiten auf einem VPS installieren

Um SSL sicher auf einem VPS zu installieren, prüfen Sie zunächst, ob Ihre Domain auf den VPS verweist, die Ports 80 und 443 erreichbar sind und der Webserver bereits die richtige Website ausliefert. Die SSL-Installation geht in der Regel schnell. Probleme verursachen fast immer DNS-Einstellungen, Firewall-Regeln oder eine Virtual-Host-Konfiguration, die auf ein unerwartetes Ziel verweist.

Ein gültiges Zertifikat verschlüsselt den Datenverkehr zwischen Besuchern und Ihrer Anwendung. Es aktiviert außerdem das Schloss-Symbol im Browser, schützt Anmeldesitzungen und Zahlungsformulare und verhindert die Warnseite, die Kunden abschreckt, bevor Ihre Website überhaupt eine Chance hat, zu funktionieren. Für eine E-Commerce-Website, ein SaaS-Dashboard, die Website eines Agenturkunden oder ein Geschäfts-Mailportal gehört dies zur grundlegenden Produktionshygiene.

Vor der SSL-Installation auf dem VPS: Diese Grundlagen prüfen​

Prüfen Sie zunächst den DNS-Eintrag. Der A-Record Ihrer Domain muss auf die öffentliche IPv4-Adresse des VPS verweisen. Wenn Sie IPv6 verwenden, muss auch der AAAA-Record auf denselben Server verweisen. Ein vergessener AAAA-Record ist ein altbekannter Stolperstein: Manche Besucher erreichen den neuen Server, während andere auf einem alten landen und eine Zertifikatswarnung erhalten.

Stellen Sie als Nächstes sicher, dass die eingehenden TCP-Ports 80 und 443 an beiden relevanten Stellen geöffnet sind: in der VPS-Firewall und in einer gegebenenfalls vorhandenen Firewall auf Anbieterseite. Für die übliche HTTP-Validierung von Certbot muss Port 80 vorübergehend oder dauerhaft verfügbar sein. Ihr Webserver muss auf diesem Port Anfragen für die Domain beantworten.

Ermitteln Sie außerdem vor allen Änderungen, welchen Webserver und welches Betriebssystem Sie verwenden. Die folgenden Befehle gehen von Ubuntu oder Debian mit Nginx oder Apache aus. Dieselben Zertifikatskonzepte gelten auch für AlmaLinux, Rocky Linux und andere Distributionen, aber Paketnamen und Dienstbefehle können abweichen.

Erstellen Sie zuerst eine Sicherungskopie Ihrer Webserverkonfiguration. Ein VPS-Snapshot oder eine Sicherung von `/etc/nginx/` oder `/etc/apache2/` bietet Ihnen einen sauberen Wiederherstellungspunkt. Das ist keine spektakuläre Arbeit, sondern einfach gute Betriebspraxis. Ihr zukünftiges Ich wird es Ihnen um 2 Uhr morgens danken.

Das passende Zertifikat auswählen​

Für die meisten Websites ist ein kostenloses Let’s-Encrypt-Zertifikat die sinnvollste Wahl. Es bietet dieselbe Transportverschlüsselung wie kommerzielle Zertifikate und eignet sich gut für normale Websites, APIs und Kontrollpanels. Das Zertifikat ist 90 Tage gültig. Die automatische Verlängerung gehört daher zur Installation und ist kein optionales Extra.

Ein kostenpflichtiges Zertifikat kann sinnvoll sein, wenn Ihre Organisation eine bestimmte Validierungsstufe, Garantiebedingungen, eine bestimmte Zertifizierungsstelle oder einen verwalteten Beschaffungsprozess benötigt. Die Installationsschritte unterscheiden sich leicht: Sie erstellen eine Zertifikatsignierungsanforderung, erhalten die ausgestellten Dateien und installieren die Zertifikatskette manuell.

Wenn Ihre Anwendung hinter Cloudflare, einem Load Balancer oder einem anderen Reverse-Proxy läuft, legen Sie fest, an welcher Stelle TLS terminiert werden soll. Möglicherweise benötigen Sie ein Zertifikat auf dem Proxy und ein weiteres zwischen Proxy und VPS. Gehen Sie nicht davon aus, dass ein orangefarbenes Wolkensymbol oder ein Load Balancer die Verschlüsselung zum Ursprungsserver überflüssig macht. Das hängt vom Sicherheitsmodus ab, aber eine durchgängige Verschlüsselung ist normalerweise die richtige Einrichtung für den Produktivbetrieb.

Ein Let’s-Encrypt-Zertifikat mit Certbot installieren​

Aktualisieren Sie unter Ubuntu oder Debian die Paketinformationen und installieren Sie Certbot mit dem Plugin für Ihren Webserver. Für Nginx verwenden Sie:

```bash sudo apt update sudo apt install certbot python3-certbot-nginx ```

Für Apache installieren Sie stattdessen das Apache-Plugin:

```bash sudo apt update sudo apt install certbot python3-certbot-apache ```

Testen Sie die Webserverkonfiguration, bevor Sie Certbot ausführen. Für Nginx:

```bash sudo nginx -t ```

Für Apache:

```bash sudo apachectl configtest ```

Beheben Sie alle gemeldeten Fehler, bevor Sie fortfahren. Eine Zertifikatsanforderung kann erfolgreich sein, während das Neuladen fehlschlägt. Dann liegt das Zertifikat zwar auf dem Datenträger, ist für Besucher aber nicht aktiv. Die Protokolle erzählen jetzt dieselbe Geschichte. Lesen Sie sie daher, bevor Sie eine weitere Komponente hinzufügen.

Fordern Sie für eine Nginx-Website das Zertifikat an und lassen Sie Certbot den Serverblock aktualisieren:

```bash sudo certbot --nginx -d example.com -d www.example.com ```

Führen Sie für Apache Folgendes aus:

```bash sudo certbot --apache -d example.com -d www.example.com ```

Ersetzen Sie `example.com` durch Ihre tatsächliche Domain. Geben Sie `www` nur an, wenn es in DNS vorhanden und im Webserver konfiguriert ist. Geben Sie während der Eingabeaufforderungen eine gültige E-Mail-Adresse an, akzeptieren Sie die Bedingungen und wählen Sie die Weiterleitungsoption, wenn der gesamte HTTP-Datenverkehr zu HTTPS umgeleitet werden soll. In den meisten Fällen ist eine Weiterleitung die richtige Wahl. So verhindern Sie, dass Besucher auf einer unverschlüsselten Version derselben Seite landen.

Certbot ruft das Zertifikat ab, trägt die Pfade in die Serverkonfiguration ein und lädt den entsprechenden Dienst neu. Laufende HTTP-Anfragen können normal abgeschlossen werden, und ein gewöhnliches Neuladen verursacht in der Regel keine nennenswerten Ausfallzeiten. Führen Sie den Vorgang dennoch zu einer ruhigeren Zeit aus, wenn Ihre Anwendung eine komplexe Proxy-Konfiguration oder benutzerdefinierte Rewrite-Regeln verwendet.

Ein kommerzielles SSL-Zertifikat manuell installieren​

Wenn Sie ein Zertifikat erworben haben, erstellen Sie auf dem VPS einen privaten Schlüssel und eine Zertifikatsignierungsanforderung. Lassen Sie den privaten Schlüssel auf dem Server und senden Sie ihn niemals per E-Mail oder fügen Sie ihn einem Support-Ticket hinzu.

```bash sudo openssl req -new -newkey rsa:2048 -nodes \ -keyout /etc/ssl/private/example.com.key \ -out /etc/ssl/certs/example.com.csr ```

Ihr Zertifikatsanbieter stellt ein Serverzertifikat und ein oder mehrere Zwischenzertifikate aus. Fügen Sie die Zwischenzertifikate bei Bedarf gemäß den Vorgaben Ihres Anbieters zur vollständigen Zertifikatskette zusammen. Bei Nginx benötigt der Serverblock im Allgemeinen die folgenden Direktiven:

```nginx listen 443 ssl; server_name example.com www.example.com; ssl_certificate /etc/ssl/certs/example.com.fullchain.pem; ssl_certificate_key /etc/ssl/private/example.com.key; ```

Apache verwendet im HTTPS-Virtual-Host die entsprechenden Direktiven `SSLCertificateFile` und `SSLCertificateKeyFile`. Die genaue Dateistruktur kann je nach Distribution und Kontrollpanel variieren. Übernehmen Sie Pfade daher nicht ungeprüft. Prüfen Sie auch Eigentümer und Berechtigungen. Der private Schlüssel sollte normalerweise nur für root und, falls erforderlich, das Dienstkonto lesbar sein.

Testen Sie die Konfiguration und laden Sie den Dienst nach Möglichkeit neu, statt ihn neu zu starten:

```bash sudo nginx -t && sudo systemctl reload nginx ```

Beim Neuladen bleiben aktive Worker-Prozesse erhalten, während die neue Konfiguration übernommen wird. Wenn möglich, ist das die unkomplizierte Option.

Zertifikat und Weiterleitungsverhalten überprüfen​

Rufen Sie Ihre Domain in einem privaten Browserfenster mit `https://` auf. Prüfen Sie, ob die angezeigte Domain mit dem Zertifikat übereinstimmt und der Browser eine gültige Verbindung meldet. Testen Sie anschließend die HTTP-Version und vergewissern Sie sich, dass sie zu HTTPS weiterleitet.

Die Antwortheader können Sie auf dem VPS oder in einem anderen Terminal überprüfen:

```bash curl -I http://example.com curl -I https://example.com ```

Die HTTP-Anfrage sollte eine Weiterleitung des Typs 301 oder 308 zur HTTPS-Adresse zurückgeben. Die HTTPS-Anfrage sollte den erwarteten Status zurückgeben, häufig 200, 301 oder 302, je nach Anwendung.

Prüfen Sie das Zertifikat außerdem direkt:

```bash sudo certbot certificates ```

Prüfen Sie bei einem kommerziellen Zertifikat mit OpenSSL das Ablaufdatum und die Angaben zum Aussteller:

```bash openssl x509 -in /etc/ssl/certs/example.com.fullchain.pem -noout -dates -issuer -subject ```

Verlassen Sie sich nicht nur auf das Schloss-Symbol. Gemischte Inhalte können Seiten weiterhin beeinträchtigen, wenn Skripte, Bilder, Schriftarten oder API-Aufrufe über `http://`-URLs geladen werden. Die Entwicklertools des Browsers zeigen diese Warnungen an. Aktualisieren Sie fest codierte URLs, Umgebungsvariablen der Anwendung und alle CDN- oder Asset-Einstellungen.

Die Verlängerung als überwachte Aufgabe einrichten​

Let’s-Encrypt-Zertifikate müssen vor Ablauf der 90 Tage verlängert werden. Moderne Certbot-Pakete installieren normalerweise automatisch einen systemd-Timer. Überprüfen Sie dies jedoch, statt einem stillen Server einfach zu vertrauen.

```bash sudo systemctl list-timers | grep certbot sudo certbot renew --dry-run ```

Der Probelauf ist der entscheidende Test. Er bestätigt, dass der VPS die künftige Validierung durchführen und den Webserver nach der Verlängerung neu laden kann. Schlägt der Test fehl, beheben Sie das Problem, solange das aktuelle Zertifikat noch gültig ist.

Tragen Sie bei kommerziellen Zertifikaten das Ablaufdatum rechtzeitig in den Kalender ein. Die Verlängerung erfolgt oft manuell, sofern Ihr Zertifikatsanbieter oder Ihre Verwaltungsplattform keine Automatisierung unterstützt. Richten Sie nach Möglichkeit eine Überwachung des Zertifikatsablaufs ein. Ein gültiges Zertifikat, dessen Ablauf unbemerkt bleibt, führt trotzdem zu einem Ausfall – nur mit einer sehr offiziell wirkenden Browserfehlermeldung.

Bei kodu.cloud können verwalteter Betriebssupport und Überwachung diese Art wiederkehrender Risiken verringern, insbesondere wenn ein VPS mehrere Kundendomains oder Produktionsdienste hostet. Das Ziel ist einfach: Zertifikate sollten unbemerkt verlängert werden, und Ihr Team sollte nicht jedes Quartal daran denken müssen.

Häufige Probleme nach der SSL-Installation​

Eine Zertifikatsabweichung bedeutet meist, dass die Anfrage den falschen VPS erreicht, der falsche Virtual Host als Standard fungiert oder bei der Zertifikatsanforderung ein Hostname wie `www` ausgelassen wurde. Prüfen Sie zuerst DNS und anschließend die im Webserver konfigurierten Servernamen.

Ein Validierungsfehler weist normalerweise auf Port 80, die DNS-Propagation oder eine Proxy-Konfiguration hin. Wenn die Domain ein CDN verwendet, stellen Sie sicher, dass dessen DNS-Einträge und Proxy-Modus die gewählte Validierungsmethode zulassen. Die Validierung per DNS-Challenge ist bei Wildcard-Zertifikaten oft besser geeignet, erfordert jedoch Zugriff auf die DNS-API oder eine manuelle Einrichtung eines DNS-Eintrags.

Wenn die Website nach dem Erzwingen von HTTPS in einer Weiterleitungsschleife landet, suchen Sie nach konkurrierenden Weiterleitungen in der Anwendung, in Nginx oder Apache und in einem etwaigen Reverse-Proxy. Anwendungen hinter einem Proxy benötigen möglicherweise eine vertrauenswürdige Einstellung für weitergeleitete Header, damit sie die ursprüngliche Anfrage als HTTPS erkennen. Wenn das passiert, ist die DNS-Situation nicht gerade elegant. Sie lässt sich jedoch in den Griff bekommen, sobald klar festgelegt ist, wer für Weiterleitungen zuständig ist.

Binden Sie das Zertifikat, die Webserverkonfiguration und die Verlängerungsprüfungen in denselben Betriebsablauf ein. Ein korrekt installiertes SSL-Zertifikat sollte zur unspektakulären Infrastruktur gehören – vorhanden, überprüft und nicht auf Aufmerksamkeit angewiesen.

Andres Saar, Customer-Care-Ingenieur