Zum Inhalt springen
StealthRDP
VPS-Verwaltung

Domain mit Ihrem VPS verbinden und HTTPS kostenlos einrichten

Domain mit VPS verbinden: A-Records anlegen und per dig oder nslookup prüfen, Port 80/443 öffnen und kostenloses HTTPS mit Let's Encrypt und Certbot einrichten.

Veröffentlicht am

9 Min. Lesezeit

Dieser Ratgeber zeigt, wie Sie eine Domain mit Ihrem VPS verbinden, sodass example.com und www.example.com auf Ihre Website führen, und wie Sie HTTPS mit einem kostenlosen Zertifikat von Let's Encrypt einrichten. [1] Er richtet sich an alle, die einen VPS mit Ubuntu 24.04 LTS und nginx oder Apache betreiben und eine Domain haben, deren DNS beim Registrar oder bei Cloudflare liegt. Ersetzen Sie example.com und 203.0.113.10 durch Ihre eigene Domain und die Adresse Ihres Servers.

Was Sie vorher brauchen

Sie benötigen vier Dinge:

  • Zugriff auf das DNS der Domain, beim Registrar oder bei Cloudflare, wenn die Domain die Nameserver von Cloudflare nutzt.
  • SSH-Zugang mit sudo-Rechten, per SSH-Schlüssel statt Root-Passwort, wie in unserer Checkliste zur SSH-Härtung beschrieben.
  • nginx oder Apache, installiert und gestartet.
  • Die öffentliche IPv4-Adresse des Servers, die Ihr Anbieter bei den Serverdetails angibt. Jeder Linux-VPS von StealthRDP hat eine dedizierte IPv4-Adresse.

IPv6 ist optional: Ein AAAA-Record ordnet einem Namen eine IPv6-Adresse zu; legen Sie AAAA-Records also nur an, wenn der Server eine solche Adresse hat. [2] Sie suchen noch einen Server? Unser Ratgeber hilft Ihnen, einen VPS für Webhosting richtig zu dimensionieren.

Die Domain per DNS mit dem VPS verbinden

Um eine Domain mit Ihrem VPS zu verbinden, legen Sie A-Records an, die example.com und www.example.com der IPv4-Adresse des Servers zuordnen. [2] Nehmen Sie die Änderung dort vor, wo das DNS der Domain verwaltet wird.

Läuft über die Domain bereits eine Website oder E-Mail, notieren Sie zuerst die vorhandenen Einträge. Ändern Sie nur die A-, AAAA- und CNAME-Records für @ und www, und lassen Sie alle anderen unverändert, etwa die MX-Records für E-Mail.

1. A-Records für die Hauptdomain und www anlegen

Ein A-Record ordnet einem Namen eine IPv4-Adresse zu, und im Namensfeld steht @ für die Zone selbst (den Zone Apex), also für example.com. [2]

Typ Name Inhalt Proxy-Status (nur Cloudflare)
A @ 203.0.113.10 Vorerst „DNS only“
A www 203.0.113.10 Vorerst „DNS only“
AAAA @ und www Die IPv6-Adresse des Servers, nur falls vorhanden Vorerst „DNS only“

Löschen Sie alle anderen A- oder AAAA-Records für diese Namen, etwa die für eine Parkseite des Registrars.

2. Oder www über einen CNAME-Record einrichten

Ein CNAME-Record verweist einen Namen auf einen anderen Namen statt auf eine Adresse. [2] Ein CNAME für www mit dem Ziel example.com folgt dem Eintrag der Hauptdomain; bei einer neuen Serveradresse ändern Sie dann nur einen Eintrag. Verwenden Sie für www entweder den A-Record oder den CNAME, nicht beides.

Lassen Sie bei Cloudflare beide Einträge auf „DNS only“ (graue Wolke), bis das Zertifikat ausgestellt ist; warum, erklärt der Abschnitt zu Cloudflare.

3. Die TTL verstehen, bevor Sie auf die DNS-Änderung warten

Die TTL (Time to Live) legt fest, wie lange DNS-Resolver eine Antwort zwischenspeichern, bevor sie erneut nachfragen. Eine veraltete Antwort kann sich also halten, bis ihre TTL abgelaufen ist. [2] Bei Cloudflare steht die TTL von Einträgen im Proxy-Modus standardmäßig auf Auto, also auf 300 Sekunden; Einträge auf „DNS only“ verwenden den Wert, den Sie wählen. [2] Andere Anbieter zeigen ihren Standardwert in der Spalte TTL.

4. Einträge mit dig oder nslookup prüfen

Fragen Sie einen öffentlichen Resolver wie Google Public DNS unter 8.8.8.8 nach beiden Namen: unter Linux und macOS mit dig, unter Windows mit nslookup. [3]

Linux oder macOS
dig -t A example.com @8.8.8.8
dig -t A www.example.com @8.8.8.8
Windows (PowerShell oder Eingabeaufforderung)
nslookup -type=A example.com 8.8.8.8
nslookup -type=A www.example.com 8.8.8.8

Beide Namen sollten 203.0.113.10 liefern; um IPv6 zu prüfen, fragen Sie nach AAAA statt nach A. Ist das nicht der Fall, hilft der Abschnitt zu häufigen Problemen weiter unten.

Ports 80 und 443 mit UFW öffnen

HTTP nutzt normalerweise TCP-Port 80 und HTTPS Port 443, und für Certbot muss Port 80 aus dem Internet erreichbar sein. [4] UFW ist anfangs deaktiviert, und seine Standardrichtlinie weist eingehende Verbindungen ab. Das Aktivieren kann bestehende Verbindungen trennen, etwa Ihre SSH-Sitzung; sind Sie per SSH angemeldet, fragt UFW vorher nach einer Bestätigung. [5]

Erlauben Sie SSH, bevor Sie sudo ufw enable ausführen, sonst können Sie sich vom Server aussperren. Lauscht SSH auf einem anderen Port als 22, erlauben Sie stattdessen diesen Port.

SSH, HTTP und HTTPS erlauben, dann UFW einschalten
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status

Möchten Sie statt Portnummern ein Anwendungsprofil erlauben, zeigt sudo ufw app list die Profile auf Ihrem Server und sudo ufw app info, welche Ports ein Profil öffnet; setzen Sie Namen mit Leerzeichen in Anführungszeichen. [5] Ist IPv6 in UFW aktiviert, was der Standard ist, gilt jede Regel für IPv4 und IPv6. [5] Betreibt Ihr Anbieter eine Firewall vor dem Server, öffnen Sie dort dieselben Ports. [4]

example.com mit nginx oder Apache ausliefern

Richten Sie example.com in Ihrem Webserver ein, bevor Sie HTTPS hinzufügen, denn Certbot erwartet eine Website, die bereits über unverschlüsseltes HTTP antwortet. [4]

nginx: ein server-Block für beide Namen

Unter Ubuntu liegt jeder server-Block von nginx in /etc/nginx/sites-available und wird über einen symbolischen Link in /etc/nginx/sites-enabled aktiviert; tragen Sie beide Namen in die Zeile server_name ein. [6]

/etc/nginx/sites-available/example.com
server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;

    root /srv/example.com/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}
Testseite anlegen, Website aktivieren und nginx neu laden
sudo mkdir -p /srv/example.com/html
echo "example.com works" | sudo tee /srv/example.com/html/index.html
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Apache: das Gegenstück mit einem VirtualHost

Bei Apache steht in einem VirtualHost unter /etc/apache2/sites-available die Direktive ServerName für example.com und ServerAlias für www.example.com. Beginnen Sie mit einer Kopie der Standarddatei und aktivieren Sie die neue Datei mit a2ensite. [7]

Standard-VirtualHost kopieren
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf
/etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com
</VirtualHost>

Ein Neustart von Apache betrifft alle Websites auf dem Server. Sind weitere Websites online, prüfen Sie zuerst die neue Datei und lassen Sie Ihre SSH-Sitzung offen.

Testseite anlegen, Website aktivieren und Apache neu starten
sudo mkdir -p /var/www/example.com
echo "example.com works" | sudo tee /var/www/example.com/index.html
sudo a2ensite example.com
sudo systemctl restart apache2.service

Öffnen Sie http://example.com und http://www.example.com: Beide sollten die Testseite zeigen.

Kostenloses HTTPS mit Let's Encrypt und Certbot

Certbot holt ein Zertifikat von Let's Encrypt und kann nginx oder Apache so konfigurieren, dass der Webserver es ausliefert. [4]

1. Certbot als Snap installieren

Die Certbot-Website empfiehlt den meisten Nutzern nachdrücklich das Snap-Paket. Es setzt snapd voraus; entfernen Sie zuerst ein eventuell mit apt installiertes Certbot-Paket, damit der Befehl certbot die Snap-Version aufruft. [4]

Certbot unter Ubuntu 24.04 installieren
sudo apt-get remove certbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot

2. Zertifikat holen und HTTPS einschalten

Das Plugin für Ihren Webserver holt das Zertifikat und passt die Konfiguration so an, dass der Webserver es ausliefert. HTTPS ist damit in einem Schritt eingeschaltet. [4]

nginx
sudo certbot --nginx
Apache
sudo certbot --apache

Beantworten Sie die Fragen von Certbot und nehmen Sie beide Namen auf, denn ein Zertifikat kann mehrere Namen enthalten. [1] Wollen Sie die Konfiguration lieber selbst bearbeiten, führen Sie stattdessen sudo certbot certonly --nginx aus; dieser Befehl holt nur das Zertifikat. [4] Öffnen Sie danach https://example.com und achten Sie auf das Schloss-Symbol. [4]

3. Automatische Erneuerung testen

Certbot richtet einen Cronjob oder einen systemd-Timer ein, der Zertifikate vor ihrem Ablauf erneuert. Sie müssen Certbot also erst wieder ausführen, wenn sich Ihre Konfiguration ändert. [4] Testen Sie die Erneuerung jetzt und noch einmal nach Änderungen am DNS, an der Firewall oder bei Cloudflare:

Erneuerung testen und Timer finden
sudo certbot renew --dry-run
systemctl list-timers

Wie lange Let's-Encrypt-Zertifikate gültig sind

Die Standardzertifikate von Let's Encrypt sind 90 Tage gültig. [1] Ab dem 10. Februar 2027 sind Zertifikate, die Let's Encrypt ausstellt oder erneuert, standardmäßig 64 Tage gültig. Die letzten 90-Tage-Zertifikate laufen voraussichtlich am 11. Mai 2027 ab, und für 2028 plant Let's Encrypt eine Standardlaufzeit von 45 Tagen. [8] Haben Sie einen eigenen Cronjob mit festem Intervall geschrieben, rät Let's Encrypt, stattdessen nach etwa zwei Dritteln der Laufzeit zu erneuern und Skripte auf fest einprogrammierte Zahlen wie 60, 80 oder 83 zu prüfen. [8]

Full (strict) verwenden, wenn der Cloudflare-Proxy aktiv ist

Ist der Proxy von Cloudflare aktiv, stellen Sie den SSL/TLS-Verschlüsselungsmodus auf Full (strict). Der Modus steuert die Verbindung von den Besuchern zu Cloudflare und die Verbindung von Cloudflare zu Ihrem Server. [9]

Modus Von Cloudflare zu Ihrem Server Serverzertifikat geprüft
Flexible Nur HTTP, unverschlüsselt Nein
Full Dasselbe Protokoll wie beim Besucher Nein
Full (strict) Dasselbe Protokoll wie beim Besucher Ja
Strict (SSL-Only Origin Pull) Immer HTTPS Ja

Vermeiden Sie Flexible: Der Browser zeigt HTTPS an, doch der Datenverkehr zwischen Cloudflare und Ihrem Server ist unverschlüsselt, und Cloudflare selbst empfiehlt nachdrücklich Full oder Full (strict). [9] Außerdem verträgt sich Flexible nicht mit der Weiterleitung von HTTP auf HTTPS, die Certbot bei der Einrichtung hinzufügen kann. [4] Cloudflare fragt Ihren Server per HTTP an, der Server leitet auf HTTPS um, und der Browser landet in einer Endlosschleife. [9] Full (strict) prüft das Zertifikat des Servers, das von einer öffentlichen CA wie Let's Encrypt stammen kann. [9]

Läuft das Zertifikat ab, stellt Cloudflare eine Zone nicht von Full (strict) auf Full zurück; die Erneuerung muss also zuverlässig funktionieren. [9] Am einfachsten ist diese Reihenfolge: zuerst das Zertifikat, dann der Proxy.

Wählen Sie Full (strict) erst, wenn das Zertifikat installiert ist und der Probelauf der Erneuerung erfolgreich war.

  1. Holen Sie das Zertifikat, solange beide Einträge auf „DNS only“ stehen.
  2. Stellen Sie beide Einträge auf „Proxied“ um.
  3. Wählen Sie unter SSL/TLS auf der Seite „Overview“ den Modus Full (strict); nutzt die Zone „Automatic SSL/TLS“, wählen Sie zuerst „Custom“. [9]
  4. Führen Sie sudo certbot renew --dry-run erneut aus.

Auch bei bereits aktivem Proxy kann die Ausstellung funktionieren: In Full und Full (strict) erreicht Cloudflare Ihren Server über HTTP, wenn die Anfrage per HTTP kommt, sodass die Prüfung von Certbot über Port 80 durchkommen kann. [9] Strict (SSL-Only Origin Pull) verbindet sich immer über HTTPS und scheitert deshalb, solange es kein Zertifikat gibt. [9] Schlägt die Ausstellung fehl, stellen Sie die Einträge wieder auf „DNS only“, holen das Zertifikat und schalten den Proxy danach wieder ein.

Auch mit aktivem Proxy ist der Server über seine IP für jeden erreichbar, der sie kennt. Um diese Lücke zu schließen, lassen Sie auf Ihren Web-Ports 80 und 443 nur Cloudflare-IPs zu.

Häufige Probleme und ihre Lösung

Die meisten Fehler gehen auf das DNS, die Firewall oder zu viele Wiederholungsversuche zurück.

Das DNS ist noch nicht aktualisiert. Taucht noch die alte Adresse auf, liefert ein Resolver weiterhin eine zwischengespeicherte Antwort aus, die er bis zum Ablauf der TTL behalten kann. [2] Nach einem Wechsel der DNS-Server oder des Registrars kann auch Google Public DNS alte Antworten liefern; das Werkzeug „Flush Cache“ von Google löscht sie. [3]

Ein falscher oder fehlender Eintrag. Suchen Sie nach einem Tippfehler in der Adresse, einem übrig gebliebenen Eintrag des Registrars, einem fehlenden www-Eintrag oder nach Änderungen bei einem DNS-Anbieter, den die Domain gar nicht mehr nutzt. Ein fehlender www-Eintrag verhindert auch HTTPS, denn jeder Name, für den Sie das Zertifikat beantragen, muss die Validierung bestehen. [10] Entfernen Sie AAAA-Records, wenn der Server unter dieser IPv6-Adresse nicht wirklich antwortet.

Port 80 ist blockiert. Laut Let's Encrypt scheitern HTTP-01-Validierungen meist an Netzwerk- oder Firewall-Einstellungen, die verhindern, dass die Server von Let's Encrypt Ihren Server erreichen. [10] Prüfen Sie die Ausgabe von sudo ufw status und die Firewall Ihres Anbieters, und lassen Sie Port 80 auch nach der Umstellung auf HTTPS offen, denn die Certbot-Plugins für nginx und Apache sind darauf angewiesen. [4]

Zu viele Fehlversuche. Pro Konto sind für denselben Namen höchstens 5 fehlgeschlagene Validierungen pro Stunde erlaubt; das Kontingent füllt sich mit einem Versuch alle 12 Minuten wieder auf, und bis dahin lehnt Let's Encrypt neue Zertifikatsanträge für diesen Namen ab. [10] Außerdem stellt Let's Encrypt für exakt dieselbe Kombination von Namen höchstens 5 Zertifikate innerhalb von 7 Tagen aus, und wer bei der Fehlersuche den Client neu installiert, stößt häufig an diese Grenze. [10] Let's Encrypt kann ein Limit nicht vorzeitig zurücksetzen, und auch das Widerrufen von Zertifikaten setzt es nicht zurück. Beheben Sie also die Ursache, bevor Sie es erneut versuchen; für Tests empfiehlt Let's Encrypt seine Staging-Umgebung, die deutlich höhere Limits hat. [10]

Funktionieren Domain und Zertifikat, zeigt die Seite aber den Fehler 502 Bad Gateway, gehen Sie unseren Ratgeber zur Behebung von 502 Bad Gateway durch.

Häufige Fragen

Wie lange dauert es, bis eine Domain auf einen neuen VPS zeigt?

Das hängt von der TTL der Einträge ab und davon, was Resolver bereits zwischengespeichert haben. Bei Cloudflare haben Einträge im Proxy-Modus standardmäßig eine TTL von 300 Sekunden, Einträge auf „DNS only“ den Wert, den Sie festlegen. Ein Resolver kann eine alte Antwort behalten, bis ihre TTL abläuft. [2]

Sollte www ein A-Record oder ein CNAME sein?

Beides funktioniert. Ein A-Record verweist www direkt auf die IPv4-Adresse des Servers, ein CNAME dagegen auf einen anderen Namen wie example.com und folgt damit dessen Eintrag, wenn sich die Adresse ändert. [2]

Ist Let's Encrypt kostenlos?

Ja. Let's Encrypt verlangt für seine Zertifikate keine Gebühr, und die Standardzertifikate sind 90 Tage gültig. [1]

Wie lange sind Let's-Encrypt-Zertifikate gültig?

Die Standardzertifikate von Let's Encrypt sind derzeit 90 Tage gültig. [1] Ab dem 10. Februar 2027 sind neue und erneuerte Zertifikate standardmäßig 64 Tage gültig, und für 2028 plant Let's Encrypt eine Standardlaufzeit von 45 Tagen. [8]

Welchen SSL/TLS-Modus von Cloudflare sollte ich mit Let's Encrypt verwenden?

Verwenden Sie Full (strict). Dieser Modus prüft das Zertifikat Ihres Servers, das von Let's Encrypt stammen kann, während Flexible die Verbindung zwischen Cloudflare und Ihrem Server unverschlüsselt lässt. [9]

Quellen und Referenzen
  1. FAQ — Let's Encrypt (abgerufen am 2026-11-03)
  2. DNS record types — Cloudflare Docs (abgerufen am 2026-11-03)
  3. Troubleshooting — Google Public DNS (abgerufen am 2026-11-03)
  4. Certbot instructions: Nginx on Linux (snap) — Certbot (EFF) (abgerufen am 2026-11-03)
  5. ufw(8): program for managing a netfilter firewall — Ubuntu Manpages (abgerufen am 2026-11-03)
  6. How to configure nginx — Ubuntu Server documentation (abgerufen am 2026-11-03)
  7. How to configure Apache2 settings — Ubuntu Server documentation (abgerufen am 2026-11-03)
  8. 64-Day Certificate Lifetimes Coming Feb 2027 — Let's Encrypt (abgerufen am 2026-11-03)
  9. Encryption modes — Cloudflare Docs (abgerufen am 2026-11-03)
  10. Rate Limits — Let's Encrypt (abgerufen am 2026-11-03)

Weiterlesen