Diese Anleitung zeigt Ihnen, wie Sie Nginx installieren, eine Website konfigurieren und ein kostenloses SSL-Zertifikat mit Certbot erhalten, um Ihre Website mit HTTPS zu sichern.
📋 Voraussetzungen
- Ein VPS-Server mit Root- oder sudo-Zugriff
- Ein Domainname, der auf die IP Ihres Servers zeigt (Beispiel:
meineseite.com) - Ports 80 (HTTP) und 443 (HTTPS) in Ihrer Firewall geöffnet
💡 Infrastruktur-Empfehlung
Nginx und Certbot funktionieren perfekt auf unseren NVMe VPS, die außergewöhnliche Festplattenleistung für das schnelle Bereitstellen Ihrer Websites bieten. NVMe-Laufwerke gewährleisten optimale Antwortzeiten für Ihre Besucher.
🚀 Schritt 1: Nginx installieren
Pakete aktualisieren
Bashsudo apt update
Nginx installieren
Bashsudo apt install nginx -y
Installation überprüfen
Bash1# Überprüfen, dass Nginx installiert ist 2nginx -v 3 4# Überprüfen, dass Nginx läuft 5sudo systemctl status nginx
Wenn alles korrekt ist, sollten Sie active (running) sehen.
Nginx in Firewall (UFW) erlauben
Bash1# HTTP (Port 80) erlauben 2sudo ufw allow 'Nginx HTTP' 3 4# HTTPS (Port 443) erlauben 5sudo ufw allow 'Nginx HTTPS' 6 7# Regeln überprüfen 8sudo ufw status
Nginx testen
Öffnen Sie Ihren Browser und gehen Sie zu:
http://ihre-server-ipoderhttp://ihre-domain.com
Sie sollten die Standard-Nginx-Seite sehen, die bestätigt, dass die Installation funktioniert!
📝 Schritt 2: Ihre Website konfigurieren
Ordner für Ihre Website erstellen
Bash1# Ordner erstellen (ersetzen Sie meineseite.com durch Ihre Domain) 2sudo mkdir -p /var/www/meineseite.com 3 4# Berechtigungen setzen 5sudo chown -R $USER:$USER /var/www/meineseite.com 6sudo chmod -R 755 /var/www/meineseite.com
Einfache HTML-Seite erstellen
Bash# Index-Seite erstellen nano /var/www/meineseite.com/index.html
Fügen Sie diesen einfachen Inhalt hinzu:
HTML1<!DOCTYPE html> 2<html lang="de"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>Meine Website</title> 7</head> 8<body> 9 <h1>Willkommen auf meiner Website!</h1> 10 <p>Ihre Website funktioniert korrekt mit Nginx.</p> 11</body> 12</html>
Speichern Sie mit Strg + X, dann Y, dann Eingabe.
Nginx-Konfiguration erstellen
Bash# Konfigurationsdatei erstellen sudo nano /etc/nginx/sites-available/meineseite.com
Fügen Sie diese Konfiguration hinzu:
Nginx1server { 2 listen 80; 3 listen [::]:80; 4 5 server_name meineseite.com www.meineseite.com; 6 7 root /var/www/meineseite.com; 8 index index.html; 9 10 location / { 11 try_files $uri $uri/ =404; 12 } 13}
Speichern Sie die Datei.
Website aktivieren
Bash1# Symbolischen Link erstellen, um die Website zu aktivieren 2sudo ln -s /etc/nginx/sites-available/meineseite.com /etc/nginx/sites-enabled/ 3 4# Nginx-Konfiguration testen 5sudo nginx -t
Wenn Sie syntax is ok und test is successful sehen, ist alles in Ordnung!
Standard-Website entfernen (optional)
Bash1# Standard-Website entfernen 2sudo rm /etc/nginx/sites-enabled/default 3 4# Nginx neu laden 5sudo systemctl reload nginx
Ihre Website testen
Öffnen Sie Ihren Browser und gehen Sie zu http://ihre-domain.com. Sie sollten Ihre HTML-Seite sehen!
🔒 Schritt 3: Certbot installieren und SSL-Zertifikat erhalten
Certbot ist ein Tool, das automatisch kostenlose SSL-Zertifikate von Let's Encrypt abruft.
Certbot installieren
Bash# Certbot und Nginx-Plugin installieren sudo apt install certbot python3-certbot-nginx -y
SSL-Zertifikat erhalten
Bash# SSL-Zertifikat für Ihre Domain erhalten sudo certbot --nginx -d meineseite.com -d www.meineseite.com
Certbot wird Ihnen einige Fragen stellen:
- E-Mail: Geben Sie Ihre E-Mail-Adresse ein (für Erneuerungsbenachrichtigungen)
- Nutzungsbedingungen: Akzeptieren Sie mit
A(Agree) - E-Mail teilen: Wählen Sie
J(Ja) oderN(Nein) nach Ihren Vorlieben - HTTP zu HTTPS umleiten: Wählen Sie
2(Automatische Umleitung empfohlen)
Zertifikat überprüfen
Bash# Überprüfen, dass das Zertifikat erstellt wurde sudo certbot certificates
Sie sollten Ihr Zertifikat mit Ablaufdaten aufgelistet sehen.
Ihre HTTPS-Website testen
Öffnen Sie Ihren Browser und gehen Sie zu https://ihre-domain.com.
Sie sollten sehen:
- Ein grünes Schloss 🔒 in der Adressleiste
- Ihre Website über HTTPS geladen (sicher)
Glückwunsch! Ihre Website ist jetzt mit SSL gesichert!
🔄 Schritt 4: Automatische Zertifikatserneuerung
Let's Encrypt-Zertifikate laufen nach 90 Tagen ab. Certbot kann sie automatisch erneuern.
Automatische Erneuerung testen
Bash# Automatische Erneuerung testen sudo certbot renew --dry-run
Wenn Sie The dry run was successful sehen, funktioniert die automatische Erneuerung!
Erneuerungsdienst überprüfen
Certbot erstellt automatisch einen systemd-Timer zum Erneuern von Zertifikaten. Überprüfen Sie ihn:
Bash1# Timer überprüfen 2sudo systemctl status certbot.timer 3 4# Wenn Timer nicht aktiv ist, aktivieren 5sudo systemctl enable certbot.timer 6sudo systemctl start certbot.timer
Das Zertifikat wird automatisch vor Ablauf erneuert.
📁 Dateistruktur
Hier finden Sie wichtige Dateien:
/var/www/meineseite.com/ # Ihre Websitedateien
/etc/nginx/ # Nginx-Konfiguration
/etc/nginx/sites-available/ # Verfügbare Websites
/etc/nginx/sites-enabled/ # Aktive Websites
/etc/letsencrypt/ # SSL-Zertifikate
✅ Endgültige Überprüfung
Überprüfen, dass Nginx funktioniert
Bash1# Dienststatus 2sudo systemctl status nginx 3 4# Konfiguration testen 5sudo nginx -t
Überprüfen, dass SSL funktioniert
Bash1# Zertifikate anzeigen 2sudo certbot certificates 3 4# Ablaufdatum überprüfen 5sudo certbot certificates | grep "Expiry"
Ihre Website testen
- Gehen Sie zu
https://ihre-domain.com - Überprüfen Sie das grüne Schloss im Browser
- Klicken Sie auf das Schloss, um Zertifikatsdetails zu sehen
🛠️ Nützliche Befehle
Nginx-Verwaltung
Bash1# Nginx starten 2sudo systemctl start nginx 3 4# Nginx stoppen 5sudo systemctl stop nginx 6 7# Nginx neu starten 8sudo systemctl restart nginx 9 10# Nginx neu laden (ohne Unterbrechung) 11sudo systemctl reload nginx 12 13# Konfiguration testen 14sudo nginx -t
SSL-Zertifikatsverwaltung
Bash1# Alle Zertifikate manuell erneuern 2sudo certbot renew 3 4# Ein bestimmtes Zertifikat erneuern 5sudo certbot renew --cert-name meineseite.com 6 7# Alle Zertifikate anzeigen 8sudo certbot certificates 9 10# Ein Zertifikat löschen 11sudo certbot delete --cert-name meineseite.com
Logs anzeigen
Bash1# Nginx-Logs 2sudo tail -f /var/log/nginx/error.log 3sudo tail -f /var/log/nginx/access.log 4 5# Certbot-Logs 6sudo tail -f /var/log/letsencrypt/letsencrypt.log
🆘 Fehlerbehebung
Nginx startet nicht
Bash1# Konfigurationsfehler überprüfen 2sudo nginx -t 3 4# Fehlerprotokolle anzeigen 5sudo journalctl -u nginx -n 50
SSL-Zertifikat wird nicht installiert
Problem: Certbot kann Ihre Domain nicht überprüfen.
Lösungen:
-
Überprüfen Sie, dass Ihre Domain auf die Server-IP zeigt:
Bashdig meineseite.com -
Überprüfen Sie, dass Ports 80 und 443 geöffnet sind:
Bashsudo ufw status -
Überprüfen Sie, dass Nginx auf Port 80 lauscht:
Bashsudo netstat -tlnp | grep nginx -
Stellen Sie sicher, dass Ihre Nginx-Konfiguration den korrekten
server_nameverwendet
Website lädt nicht über HTTPS
-
Überprüfen Sie, dass das Zertifikat existiert:
Bashsudo certbot certificates -
Nginx-Konfiguration überprüfen:
Bashsudo nginx -t sudo cat /etc/nginx/sites-enabled/meineseite.com -
Stellen Sie sicher, dass die Firewall Port 443 erlaubt:
Bashsudo ufw allow 443/tcp
502 Bad Gateway Fehler
Dieser Fehler bedeutet, dass Nginx nicht mit Ihrer Anwendung kommunizieren kann.
Bash1# Nginx-Logs überprüfen 2sudo tail -f /var/log/nginx/error.log 3 4# Überprüfen, dass Ihre Anwendung läuft 5sudo systemctl status ihre-anwendung
📚 Zusätzliche Ressourcen
❓ Häufig gestellte Fragen
F: Muss ich für ein SSL-Zertifikat bezahlen?
A: Nein! Certbot verwendet Let's Encrypt, das kostenlose SSL-Zertifikate anbietet.
F: Läuft mein Zertifikat ab?
A: Ja, nach 90 Tagen, aber Certbot erneuert es automatisch.
F: Kann ich mehrere Websites auf demselben Server haben?
A: Ja! Erstellen Sie eine Konfigurationsdatei für jede Website in /etc/nginx/sites-available/.
F: Wie füge ich eine Subdomain hinzu?
A: Erstellen Sie eine neue Nginx-Konfiguration und erhalten Sie ein Zertifikat mit sudo certbot --nginx -d subdomain.meineseite.com.
F: Was ist, wenn ich vergessen habe, mein Zertifikat zu erneuern?
A: Certbot erneuert es automatisch. Sie können auch sudo certbot renew manuell ausführen.
Ihre Website ist jetzt mit HTTPS gesichert! 🚀🔒