- Veröffentlicht am
- • How2-Tipps
HTTP vs. HTTPS mit NGINX – Wie du dein Webprojekt mit SSL absicherst
- Autor
-
-
- Benutzer
- tmueller
- Beiträge dieses Autors
- Beiträge dieses Autors
-
Sicherheit ist heute kein optionales Feature mehr, sondern Standard. Wer Websites betreibt, die über HTTP erreichbar sind, läuft Gefahr, dass Daten abgefangen oder manipuliert werden können. Die Lösung heißt: HTTPS – und mit NGINX lässt sich der Umstieg einfach, kostenlos und dauerhaft automatisieren.
In diesem Artikel erfährst du, wie HTTP und HTTPS funktionieren, warum SSL/TLS so wichtig ist, und wie du dein Webprojekt mit NGINX sicher konfigurierst – Schritt für Schritt.
1. HTTP vs. HTTPS – der Unterschied
HTTP (HyperText Transfer Protocol)
Das klassische HTTP überträgt Daten unverschlüsselt. Alle Inhalte – vom Login bis zur Formularübertragung – können theoretisch mitgelesen werden.
HTTPS (HTTP Secure)
HTTPS erweitert HTTP um eine Verschlüsselungsschicht (TLS/SSL). Dabei wird eine gesicherte Verbindung zwischen Browser und Server aufgebaut. Erkennbar ist das am Schloss-Symbol in der Browserzeile.
Vorteile von HTTPS:
- Verschlüsselte Kommunikation
- Schutz vor „Man-in-the-Middle“-Angriffen
- Vertrauen bei Besuchern & Suchmaschinen
- Besseres Ranking bei Google
- Voraussetzung für HTTP/2 und moderne APIs
2. Wie funktioniert SSL/TLS?
SSL (Secure Sockets Layer) ist der Vorgänger von TLS (Transport Layer Security). Beide sorgen dafür, dass:
- Daten verschlüsselt übertragen werden,
- der Server authentifiziert wird,
- die Datenintegrität sichergestellt ist.
Der Mechanismus nutzt Zertifikate, die von einer Zertifizierungsstelle (CA) signiert werden. Browser prüfen diese Zertifikate, um sicherzustellen, dass sie echt und gültig sind.
3. Vorbereitung unter NGINX
Voraussetzung:
- Eine funktionierende NGINX-Installation
- Root- oder sudo-Zugriff
- Eine registrierte Domain, die auf den Server zeigt
Optional:
Installiere Certbot (Let’s Encrypt Client)
sudo apt install certbot python3-certbot-nginx -y
4. HTTP-Server konfigurieren (Ausgangspunkt)
Erstelle oder öffne deine NGINX-Konfigurationsdatei, z. B.:
sudo nano /etc/nginx/sites-available/meine-seite
Füge folgenden Inhalt ein:
server {
listen 80;
server_name meine-seite.de www.meine-seite.de;
root /var/www/meine-seite/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Testen und neu laden:
sudo nginx -t
sudo systemctl reload nginx
Deine Website ist jetzt per HTTP erreichbar.
5. HTTPS aktivieren mit Let’s Encrypt (empfohlen)
Mit Certbot richtest du SSL-Zertifikate automatisch ein:
sudo certbot --nginx -d meine-seite.de -d www.meine-seite.de
Certbot:
- Generiert Zertifikate
- Passt deine NGINX-Konfiguration automatisch an
- Aktiviert HTTPS
- Fügt eine automatische Erneuerung hinzu
Zertifikate liegen danach unter:
/etc/letsencrypt/live/meine-seite.de/
6. Beispielkonfiguration für HTTPS
Nach erfolgreicher Einrichtung sieht deine NGINX-Datei so aus:
server {
listen 80;
server_name meine-seite.de www.meine-seite.de;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name meine-seite.de www.meine-seite.de;
ssl_certificate /etc/letsencrypt/live/meine-seite.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/meine-seite.de/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/meine-seite.de/chain.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
root /var/www/meine-seite/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Diese Konfiguration:
- leitet automatisch alle HTTP-Anfragen auf HTTPS um
- nutzt TLS 1.2 + 1.3
- aktiviert HTTP/2
- sorgt für moderne Cipher-Suites
7. HTTPS manuell mit eigenen Zertifikaten
Falls du keine Let’s-Encrypt-Zertifikate nutzt, kannst du eigene Zertifikate angeben:
ssl_certificate /etc/nginx/ssl/meine-seite.crt;
ssl_certificate_key /etc/nginx/ssl/meine-seite.key;
Zertifikate kannst du mit OpenSSL selbst erzeugen (für Tests):
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout meine-seite.key -out meine-seite.crt
8. SSL erneuern & prüfen
Let’s Encrypt-Zertifikate laufen 90 Tage. Die Erneuerung kannst du testen:
sudo certbot renew --dry-run
Zur Prüfung der SSL-Qualität: https://www.ssllabs.com/ssltest/
9. Best Practices für SSL mit NGINX
| Tipp | Beschreibung |
|---|---|
| 🔁 Automatische Erneuerung | certbot renew als Cron-Job oder systemd-Timer |
| 🧱 HSTS aktivieren | add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; |
| 🔑 Nur moderne Protokolle | TLS 1.2+ verwenden |
| 🚫 Alte Cipher deaktivieren | Kein RC4, DES, MD5 |
| ⚡ HTTP/2 aktivieren | Für bessere Performance |
| 📄 Redirects prüfen | Keine Schleifen durch doppelte Umleitungen |
Die Umstellung von HTTP auf HTTPS ist mit NGINX einfach und lohnenswert. Durch SSL-Zertifikate – besonders mit Let’s Encrypt – schützt du nicht nur Daten, sondern verbesserst auch Performance, SEO und Nutzervertrauen.
Mit wenigen Befehlen machst du dein Webprojekt fit für die Zukunft – schnell, sicher und professionell.