Datenschutz-Hinweis Diese Website verwendet nur technisch notwendige Cookies. Statistik-, Marketing- und externe Dienste werden ohne JavaScript nicht geladen. Mehr dazu in unserer Datenschutzerklärung.

Halloween bei Nexthosting: 10 % auf Gameserver mit dem Code – bis 1. November

Zurück zum Blog
Nexthosting Guide

SSL-Zertifikat auf dem VPS einrichten: Let's Encrypt Schritt für Schritt

So richtest du ein SSL-Zertifikat auf deinem VPS ein: Let's Encrypt mit Certbot, automatische Erneuerung, Wildcard, typische Fehler und sichere TLS-Konfiguration.

19.10.2026 5 Aufrufe
SSL-Zertifikat auf dem VPS einrichten: Let's Encrypt Schritt für Schritt

SSL-Zertifikat auf dem VPS einrichten: Let’s Encrypt Schritt für Schritt

Für ein SSL-Zertifikat auf deinem VPS brauchst du nur drei Dinge: eine Domain, die per DNS auf die IP deines Servers zeigt, einen Webserver wie Nginx oder Apache und einen ACME-Client wie Certbot. Damit holst du dir in wenigen Minuten ein kostenloses Zertifikat von Let’s Encrypt und lässt es danach automatisch erneuern. Hier erfährst du, wie das Schritt für Schritt funktioniert, welche Zertifikatsart zu deinem Projekt passt, warum die Laufzeiten bald deutlich kürzer werden und wie du die typischen Fehler beim Ausstellen vermeidest. Das gilt für eine Firmenwebsite genauso wie für das Webpanel deines FiveM-Servers oder die Online-Karte deines Minecraft-Servers.

Nexthosting
Der passende VPS für dein HTTPS-Projekt
Nexthosting bietet VPS für individuelle Anwendungen, mit schneller Bereitstellung und persönlichem Support für dein Projekt.
VPS-Angebot ansehen

TL;DR

  • Kostenlos und ausreichend: Für die meisten VPS-Projekte reicht ein Domain-validiertes Zertifikat von Let’s Encrypt, das kostenlos über das ACME-Protokoll ausgestellt wird.
  • Kurze Einrichtung: Certbot installieren, DNS auf die VPS-IP zeigen lassen, certbot --nginx ausführen, fertig.
  • Automatisierung ist Pflicht: Zertifikate gelten heute 90 Tage, bis 2028 sinkt die Laufzeit auf 45 Tage. Manuelles Erneuern ist damit keine Option mehr.
  • Häufigster Fehler: Port 80 ist durch eine Firewall blockiert. Ohne erreichbaren Port 80 scheitert die HTTP-Validierung.
  • Privater Schlüssel bleibt privat: Er gehört nur auf deinen Server, mit restriktiven Dateirechten, und nie in Chats oder Git-Repositories.

Inhaltsverzeichnis

Wofür du auf einem VPS ein SSL-Zertifikat brauchst

Ein SSL-Zertifikat, technisch korrekt heute ein TLS-Zertifikat, erfüllt zwei Aufgaben. Erstens verschlüsselt es die Verbindung zwischen Browser und Server, damit niemand Passwörter, Formulardaten oder Session-Cookies mitlesen kann. Zweitens bestätigt es die Identität: Der Browser prüft, ob das Zertifikat für genau diese Domain ausgestellt wurde, ob es noch gültig ist und ob es von einer vertrauenswürdigen Zertifizierungsstelle (CA) stammt. Das BSI betont in seinen Empfehlungen, dass der Client Gültigkeit, Namen und Aussteller eines Zertifikats konsequent prüfen muss. Verschlüsselung allein reicht also nicht, die Prüfung der Identität gehört dazu.

Auf einem VPS bist du selbst für diesen Teil verantwortlich. Anders als beim klassischen Webspace richtet niemand das Zertifikat automatisch für dich ein. Typische Einsatzfälle sind:

  • Websites und Shops: Ohne HTTPS zeigen Browser Warnungen an, und Formulare mit Passwörtern gelten als unsicher.
  • APIs und Backends: Wenn deine App oder dein Frontend mit einer API auf dem VPS spricht, blockieren Browser gemischte Inhalte, sobald die Hauptseite per HTTPS läuft und die API nicht.
  • Gameserver-Webpanels: Admin-Oberflächen wie txAdmin bei FiveM oder Panels zur Serververwaltung übertragen Logins. Die solltest du nie unverschlüsselt über das Netz schicken.
  • Community-Tools: Online-Karten für Minecraft, Ban-Listen, Ticket-Systeme oder ein Community-Forum laufen oft auf demselben VPS wie der Gameserver.
  • Self-Hosted-Dienste: Nextcloud, Monitoring-Dashboards oder KI-Agenten wie in unserem Leitfaden zu OpenClaw sicher auf einem VPS hosten.

Wichtig: Das Zertifikat schützt nur die Verbindung zum Webdienst. Ein Gameserver-Port selbst, etwa der Spielverkehr von Minecraft, nutzt kein HTTPS. Für Fernwartungszugänge wie RCON brauchst du andere Schutzmaßnahmen, die wir im Beitrag zur RCON-Sicherheit für Gameserver beschreiben.

Welche Zertifikatsart passt zu deinem Projekt?

Zertifikate unterscheiden sich nicht in der Stärke der Verschlüsselung, sondern darin, wie gründlich die CA prüft, wer du bist, und für wie viele Namen sie gelten.

Zertifikatsart Was geprüft wird Typischer Einsatz Kosten
Domain Validation (DV) Nur die Kontrolle über die Domain Websites, APIs, Webpanels, Community-Seiten Bei Let’s Encrypt kostenlos
Organization Validation (OV) Domain plus Existenz des Unternehmens Firmenauftritte, B2B-Portale Kostenpflichtig bei kommerziellen CAs
Extended Validation (EV) Ausführliche Prüfung der Organisation Banken, Behördenumfeld, regulierte Branchen Kostenpflichtig
Wildcard (*.domain.de) Domain, meist per DNS-Eintrag Viele Subdomains wie panel., map., api. Bei Let’s Encrypt kostenlos
Selbstsigniert Nichts, du stellst es selbst aus Reine Testumgebungen, interne Dienste Kostenlos, aber Browserwarnung

Für Gamer, Communities und die meisten Entwickler ist die Antwort einfach: Ein DV-Zertifikat von Let’s Encrypt genügt. Browser zeigen bei DV, OV und EV heute das gleiche Schloss-Symbol. Ein OV- oder EV-Zertifikat lohnt sich vor allem dann, wenn Vertragspartner oder Compliance-Vorgaben es ausdrücklich verlangen. In der EU gibt es zusätzlich qualifizierte Webseitenzertifikate nach der eIDAS-Verordnung, die vor allem für Behörden und regulierte Bereiche relevant sind.

Vorbereitung: Das muss vor dem ersten Befehl stimmen

Die meisten Probleme beim Ausstellen entstehen nicht in Certbot, sondern davor. Prüfe diese Punkte, bevor du loslegst:

  1. Domain vorhanden: Für ein öffentlich vertrauenswürdiges Zertifikat brauchst du einen Domainnamen. Auf reine IP-Adressen stellen die gängigen Wege für Einsteiger kein Zertifikat aus.
  2. DNS zeigt auf den VPS: Lege einen A-Record (IPv4) und, falls dein Server IPv6 hat, einen AAAA-Record an. Ein veralteter AAAA-Record auf eine falsche Adresse ist ein Klassiker, denn die Validierung kann dann über IPv6 ins Leere laufen.
  3. Webserver läuft: Nginx oder Apache sollte die Domain bereits per HTTP ausliefern. Ein server_name mit deiner Domain in der Nginx-Konfiguration ist Voraussetzung dafür, dass Certbot den passenden Block findet.
  4. Port 80 und 443 offen: Sowohl in der Firewall des Betriebssystems (ufw, firewalld, nftables) als auch in einer eventuell vorgelagerten Firewall im Kundenpanel.
  5. Root- oder sudo-Zugang: Certbot muss Konfigurationsdateien schreiben und den Webserver neu laden können.

Die DNS-Änderung kann je nach TTL einige Minuten bis Stunden dauern. Mit dig +short deine-domain.de siehst du, ob die Domain schon auf die richtige IP auflöst.

Schritt für Schritt: Let’s Encrypt mit Certbot und Nginx

Die folgende Anleitung bezieht sich auf Ubuntu oder Debian mit Nginx, der häufigsten Kombination auf einem VPS. Die offiziellen Certbot-Anleitungen der EFF bieten für andere Systeme und Webserver eigene Varianten.

  1. Certbot installieren. Die EFF empfiehlt die Installation über Snap:
    sudo snap install --classic certbot
    sudo ln -s /snap/bin/certbot /usr/bin/certbot
    
    Alternativ steht auf Debian und Ubuntu ein Paket aus den Distributions-Quellen bereit (sudo apt install certbot python3-certbot-nginx), das allerdings oft eine ältere Version enthält.
  2. Konfiguration testen. Mit sudo nginx -t prüfst du, ob Nginx fehlerfrei startet. Certbot ändert die Konfiguration, und ein vorhandener Syntaxfehler lässt den Vorgang sonst scheitern.
  3. Zertifikat anfordern.
    sudo certbot --nginx -d deine-domain.de -d www.deine-domain.de
    
    Certbot fragt nach einer E-Mail-Adresse und der Zustimmung zu den Nutzungsbedingungen, validiert die Domain und trägt das Zertifikat in deinen Nginx-Block ein.
  4. Weiterleitung aktivieren. Lass HTTP-Anfragen auf HTTPS umleiten, falls Certbot das nicht automatisch erledigt. In Nginx genügt ein Server-Block auf Port 80 mit return 301 https://$host$request_uri;.
  5. Ergebnis prüfen. Öffne die Seite im Browser und klick auf das Schloss-Symbol. Mit sudo certbot certificates siehst du alle Zertifikate samt Ablaufdatum.
  6. Erneuerung testen.
    sudo certbot renew --dry-run
    
    Läuft dieser Testlauf ohne Fehler, ist die automatische Erneuerung einsatzbereit.

Die Zertifikatsdateien liegen danach unter /etc/letsencrypt/live/deine-domain.de/. fullchain.pem enthält Zertifikat plus Zwischenzertifikat, privkey.pem den privaten Schlüssel. Andere Dienste wie ein Node.js-Backend oder ein Mailserver können auf genau diese Pfade verweisen.

Tipp für Gameserver-Panels: Viele Webpanels laufen auf einem eigenen Port. Statt jedem Dienst ein eigenes Zertifikat zu geben, setzt du Nginx als Reverse Proxy davor: Nginx nimmt HTTPS auf Port 443 an, zum Beispiel unter panel.deine-domain.de, und leitet intern per proxy_pass an den lokalen Port des Panels weiter. Den Panel-Port selbst schließt du dann in der Firewall nach außen.

Laufzeit und Erneuerung: 90 Tage heute, 45 Tage ab 2028

Let’s Encrypt stellt Zertifikate derzeit mit einer Gültigkeit von 90 Tagen aus. Laut der Ankündigung „Decreasing Certificate Lifetimes to 45 Days“ halbiert die CA diese Laufzeit schrittweise bis 2028, im Gleichklang mit dem Rest der Branche. Als Zwischenschritt ist für Februar 2027 eine Standardlaufzeit von 64 Tagen vorgesehen.

Die Begründung erklärt Let’s Encrypt auf der Seite zu den Plänen für Zertifikatslaufzeiten: Kürzere Laufzeiten begrenzen den Schaden, wenn ein Schlüssel kompromittiert oder ein Zertifikat fehlerhaft ausgestellt wurde, und sie zwingen zu einer robusten Automatisierung. Für dich als VPS-Betreiber heißt das: Wer heute noch per Kalendererinnerung erneuert, bekommt ab 2028 rund acht Erneuerungen im Jahr pro Zertifikat. Früher oder später wird eine vergessen, und dann zeigt der Browser deiner Community eine Sicherheitswarnung.

So stellst du sicher, dass die Automatik läuft:

  • Timer prüfen: Bei der Snap-Installation bringt Certbot einen systemd-Timer mit. systemctl list-timers | grep certbot zeigt, wann der nächste Lauf ansteht.
  • Webserver neu laden: Nach einer Erneuerung muss Nginx das neue Zertifikat laden. Mit dem Nginx-Plugin erledigt Certbot das selbst. Nutzt du andere Dienste, hinterlegst du einen Deploy-Hook, etwa --deploy-hook "systemctl reload nginx".
  • Ablauf überwachen: Ein einfacher Monitoring-Check, der das Ablaufdatum prüft und ab 14 Tagen Restlaufzeit warnt, fängt Fehler ab, bevor deine Nutzer sie sehen.
  • ARI nutzen: Unterstützt dein ACME-Client ACME Renewal Information, fragt er bei der CA nach dem empfohlenen Erneuerungszeitpunkt. Das hilft besonders dann, wenn eine CA Zertifikate vorzeitig widerrufen muss.

Das zugrunde liegende ACME-Protokoll ist als IETF-Standard RFC 8555 beschrieben und automatisiert Validierung, Ausstellung und Erneuerung vollständig. Wenn du mehrere Server betreibst, lohnt es sich, die Zertifikatseinrichtung gleich in dein Provisioning aufzunehmen. Wie das mit Skripten und Konfigurationsmanagement klappt, zeigen wir im Leitfaden zur automatisierten Server-Bereitstellung.

HTTP-01 oder DNS-01: Welche Validierung du brauchst

Bevor Let’s Encrypt ein Zertifikat ausstellt, musst du beweisen, dass du die Domain kontrollierst. Dafür gibt es zwei gängige Wege.

Kriterium HTTP-01 DNS-01
Nachweis über Datei auf deinem Webserver, abgerufen über Port 80 TXT-Eintrag in der DNS-Zone
Port 80 nötig Ja Nein
Wildcard-Zertifikate Nicht möglich Möglich
Automatisierung Sehr einfach mit Certbot-Plugin Braucht API-Zugang zum DNS-Anbieter
Geeignet für Einzelne Websites und Subdomains Viele Subdomains, interne Server, gesperrter Port 80

Die Certbot-Dokumentation weist darauf hin, dass bei der HTTP-Validierung Port 80 von außen erreichbar sein muss, weil der Validierungsserver eine direkte Anfrage dorthin schickt. Ist das nicht möglich, etwa weil ein Dienst Port 80 belegt oder der Server nur intern erreichbar ist, ist DNS-01 die flexiblere Wahl.

Für Wildcard-Zertifikate wie *.deine-domain.de ist DNS-01 laut Let’s-Encrypt-FAQ sogar Voraussetzung. Damit die Erneuerung automatisch läuft, braucht Certbot ein DNS-Plugin für deinen DNS-Anbieter und ein API-Token. Gib diesem Token nur die Rechte, die es braucht, idealerweise beschränkt auf die eine DNS-Zone.

Sicher konfigurieren: Schlüssel, Protokolle und Dateirechte

Ein ausgestelltes Zertifikat ist erst der Anfang. Wie sicher die Verbindung wirklich ist, entscheidet die Konfiguration. Das BSI behandelt im IT-Grundschutz-Baustein APP.3.2 Webserver die verschlüsselte Verbindung als Regelfall und verweist für die Schlüsselverwaltung auf ein eigenes Kryptokonzept. Für die Praxis auf einem VPS heißt das:

  • Nur aktuelle Protokolle: Erlaube in Nginx TLS 1.2 und TLS 1.3 (ssl_protocols TLSv1.2 TLSv1.3;). Ältere Versionen wie TLS 1.0 und 1.1 gelten als unsicher und werden von modernen Browsern nicht mehr unterstützt.
  • Orientierung an der BSI-Richtlinie: Für Cipher-Suites und Schlüssellängen ist die Technische Richtlinie TR-02102-2 des BSI die Referenz im deutschen Raum. Übernimm nicht blind alte Konfigurationsschnipsel aus Foren.
  • HSTS mit Bedacht: Der Header Strict-Transport-Security zwingt Browser dauerhaft auf HTTPS. Aktiviere ihn erst, wenn alle Subdomains zuverlässig per HTTPS laufen, sonst sperrst du dich selbst aus.
  • Dateirechte des Schlüssels: privkey.pem sollte nur für root lesbar sein. Certbot setzt das standardmäßig, aber eigene Kopien für andere Dienste verlieren diese Rechte schnell.
  • Richtiger Name im Zertifikat: Browser prüfen den Namen im Feld Subject Alternative Name (SAN), nicht mehr den Common Name. Jede Domain und Subdomain, die du aufrufst, muss dort stehen.

Private Schlüssel gehören nicht in fremde Hände

Der private Schlüssel ist das eigentliche Geheimnis hinter deinem Zertifikat. Wer ihn besitzt, kann sich als dein Server ausgeben. Trotzdem landen Schlüssel immer wieder in Discord-Nachrichten an einen helfenden Admin, in öffentlichen GitHub-Repositories oder in Backups ohne Verschlüsselung. Das Prinzip ist dasselbe wie bei geteilten Zugangsdaten zu Online-Diensten: Was du einmal weitergibst, kontrollierst du nicht mehr. Eine gute Übersicht dazu, welche Risiken das Teilen von Zugangsdaten mit sich bringt, zeigt, warum klare Regeln dafür sinnvoll sind.

Für dein Team bedeutet das konkret: Gib Mitadmins eigene SSH-Zugänge mit eigenen Schlüsseln, statt Dateien herumzuschicken. Schließe /etc/letsencrypt aus öffentlichen Repositories per .gitignore aus. Und wenn ein Schlüssel doch einmal nach außen gelangt ist, widerrufe das Zertifikat mit certbot revoke und stelle ein neues mit frischem Schlüssel aus.

Typische Fehler und wie du sie behebst

Fehlermeldung oder Symptom Wahrscheinliche Ursache Lösung
„Timeout during connect“ Port 80 durch Firewall blockiert ufw und vorgelagerte Firewall prüfen, Port 80 freigeben oder DNS-01 nutzen
„NXDOMAIN“ oder „DNS problem“ Domain löst noch nicht auf A/AAAA-Record prüfen, TTL abwarten, mit dig testen
Validierung schlägt nur manchmal fehl Falscher AAAA-Record für IPv6 AAAA-Record korrigieren oder entfernen
„too many certificates already issued“ Rate-Limit nach vielen Testversuchen Mit --staging testen, dann erst produktiv anfordern
Browser meldet falschen Namen Subdomain nicht im Zertifikat Zertifikat mit allen -d-Namen neu anfordern
Zertifikat abgelaufen trotz Automatik Timer deaktiviert oder Dienst nicht neu geladen certbot renew --dry-run, Timer und Deploy-Hook prüfen
Mixed-Content-Warnung Seite lädt Skripte oder Bilder per HTTP Alle Ressourcen auf HTTPS oder relative URLs umstellen

Ein Hinweis zum Testen: Arbeite bei ersten Versuchen mit der Option --staging. Die Testumgebung von Let’s Encrypt hat großzügigere Limits, und du verbrennst keine Kontingente der Produktivumgebung, während du an DNS oder Firewall schraubst.

Unsere Sicht aus dem Hosting-Alltag

Wir sehen im Support immer wieder dasselbe Muster: Ein Zertifikat ist schnell eingerichtet, Probleme entstehen Monate später. Die Community meldet eine Browserwarnung beim Panel, und dann stellt sich heraus, dass der Erneuerungs-Timer nach einem Systemumzug nie wieder gelaufen ist oder ein neuer Dienst Port 80 belegt. Unser Rat ist deshalb: Behandle das Zertifikat nicht als einmalige Aufgabe, sondern als Teil deiner Serververwaltung. Teste die Erneuerung nach jeder größeren Änderung, überwache das Ablaufdatum und dokumentiere, welche Dienste auf welche Zertifikatsdateien zugreifen.

Auf einem VPS hast du volle Kontrolle, und genau das ist der Vorteil gegenüber vorkonfigurierten Lösungen: Du entscheidest über Webserver, Reverse Proxy, Protokolle und Validierungsmethode. Mit der Verkürzung auf 45 Tage wird saubere Automatisierung zur Grundvoraussetzung, nicht zum Extra. Wer das jetzt sauber aufsetzt, hat 2028 keinen zusätzlichen Aufwand.

— Erik

Der passende Server für dein HTTPS-Projekt

Wenn du einen Server für Website, API oder Community-Panel suchst, findest du bei uns VPS mit NVMe-SSD und DDoS-Schutz im deutschen Rechenzentrum. Der Einstieg mit VPS Einfach liegt bei 6,49 € im Monat, VPS Standard kostet 10,90 €, VPS Pro 18,90 € und VPS Ultra 32,90 € pro Monat. Mit vollem Root-Zugriff richtest du Nginx, Certbot und dein Zertifikat genau so ein, wie in dieser Anleitung beschrieben. Die passende Domain für dein Zertifikat bekommst du bei Nexthosting ab 0,99 € im Monat. Was ein VPS in Deutschland insgesamt kostet, haben wir in unserem Überblick zu VPS-Kosten in Deutschland aufgeschlüsselt, und warum der Standort für Datenschutz und Ping zählt, liest du im Beitrag zum Serverstandort Deutschland.

Du willst dich nicht selbst um Server und Zertifikate kümmern, sondern nur eine Website betreiben? Dann ist WordPress-Hosting oder klassischer Webspace die bequemere Wahl.

Häufige Fragen zum SSL-Zertifikat auf dem VPS

Ist ein SSL-Zertifikat für den VPS kostenlos?

Ja, ein Domain-validiertes Zertifikat von Let’s Encrypt kostet nichts und ist für Websites, APIs und Webpanels voll ausreichend. Kosten entstehen nur, wenn du ein OV- oder EV-Zertifikat einer kommerziellen Zertifizierungsstelle brauchst. Die Verschlüsselung ist bei allen Varianten gleich stark.

Wie lange ist ein Let’s-Encrypt-Zertifikat gültig?

Aktuell 90 Tage. Let’s Encrypt verkürzt die Laufzeit schrittweise, mit 64 Tagen als Zwischenschritt ab Februar 2027 und 45 Tagen bis 2028. Mit eingerichteter automatischer Erneuerung merkst du davon im Alltag nichts.

Kann ich ein SSL-Zertifikat ohne Domain nur für die IP-Adresse nutzen?

Für Einsteiger ist der Weg über eine Domain der praktikable Standard, denn Certbot und die üblichen Anleitungen setzen einen Domainnamen voraus. Eine günstige Domain mit einem A-Record auf deine VPS-IP löst das Problem in wenigen Minuten. Selbstsignierte Zertifikate für reine IP-Adressen führen zu Browserwarnungen und eignen sich nur für Tests.

Brauche ich für jede Subdomain ein eigenes Zertifikat?

Nein. Du kannst mehrere Namen in ein Zertifikat aufnehmen, indem du Certbot mehrere -d-Parameter übergibst. Bei vielen wechselnden Subdomains ist ein Wildcard-Zertifikat per DNS-01-Validierung die elegantere Lösung.

Was passiert, wenn mein Zertifikat abläuft?

Browser zeigen eine deutliche Sicherheitswarnung, und viele Besucher brechen an dieser Stelle ab. APIs und Apps verweigern die Verbindung oft komplett. Prüfe in dem Fall mit certbot renew --dry-run, woran die Erneuerung scheitert, und behebe die Ursache, bevor du manuell neu ausstellst.

Quellen