SSL auf einem NGINX-Server aktivieren
Veröffentlicht am
- Linux
- Nginx
- Security
- SSL

Inhaltsverzeichnis
- Zusammenfassung
- Einleitung
- Systemanforderungen
- Installation von Certbot und Nginx-Plugin
- SSL-Zertifikate beziehen
- Nginx für SSL konfigurieren
- Zertifikate erneuern
- Sicherheitsoptimierungen
- Fazit
- Referenzen
1. Zusammenfassung
Dieser Artikel bietet eine praktische Anleitung zur Aktivierung der SSL/TLS-Verschlüsselung auf Nginx mithilfe von Certbot, einem Let's-Encrypt-Client. Er umfasst die Systemvorbereitung, den Zertifikatsabruf, die Nginx-Konfiguration und empfohlene Sicherheitshärtungen. Dieses Verfahren gewährleistet HTTPS-Verfügbarkeit mit automatischer Erneuerung und verbessert die Sicherheit sowie Compliance Ihrer Website.
2. Einleitung
Secure Socket Layer (SSL) und dessen Nachfolger Transport Layer Security (TLS) sind kryptografische Protokolle zur Sicherung der Kommunikation über das Internet. Die Aktivierung von HTTPS (Hypertext Transfer Protocol Secure) ist unerlässlich für Datenschutz und das Vertrauen der Nutzer.
Let's Encrypt ist eine kostenlose, automatisierte und offene Zertifizierungsstelle (CA), die HTTPS für Websites ermöglicht. Certbot ist der offizielle Client zum Anfordern und Erneuern dieser Zertifikate. In Verbindung mit Nginx kann Certbot SSL-Einstellungen automatisch konfigurieren.
3. Systemanforderungen
Um Certbot mit Nginx zu nutzen, müssen folgende Voraussetzungen erfüllt sein:
- Ein Linux-basiertes Betriebssystem (Ubuntu, Debian, CentOS usw.)
- Ein registrierter Domainname (z. B.
example.com) - Ein DNS-A-Record, der auf die Server-IP-Adresse verweist
- Root- oder Sudo-Zugriff auf den Server
- Ein installierter und laufender Nginx-Dienst
4. Installation von Certbot und Nginx-Plugin
1. Auf Ubuntu/Debian:
sudo apt update
sudo apt install certbot python3-certbot-nginx
2. Auf CentOS/RHEL:
sudo yum install epel-release
sudo yum install certbot python3-certbot-nginx
5. SSL-Zertifikate beziehen
Option A: Automatische Konfiguration
Certbot kann Nginx-Serverblöcke automatisch erkennen und konfigurieren:
sudo certbot --nginx
Sie werden nach Folgendem gefragt:
- Eingabe Ihres Domainnamens (bzw. mehrerer Domains)
- Entscheidung, ob HTTP automatisch auf HTTPS umgeleitet werden soll
- Zustimmung zu den Nutzungsbedingungen von Let's Encrypt
Certbot stellt daraufhin das Zertifikat aus, passt die Nginx-Konfiguration an und lädt Nginx automatisch neu.
Option B: Nur Zertifikat abrufen (manuelle Konfiguration)
Diese Methode bietet mehr Kontrolle über die Nginx-Konfiguration:
sudo certbot certonly --nginx -d example.com -d www.example.com
6. Nginx für SSL konfigurieren
Falls Certbot die Konfiguration nicht automatisch übernommen hat, passen Sie Ihren Server-Block manuell an:
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
root /var/www/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
# Redirect HTTP to HTTPS
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
Konfiguration testen und Nginx neu laden:
sudo nginx -t
sudo systemctl reload nginx
7. Zertifikate erneuern
Zertifikate von Let's Encrypt sind 90 Tage gültig. Certbot enthält ein integriertes Erneuerungssystem.
Automatische Erneuerung testen:
sudo certbot renew --dry-run
Cron-Job oder Systemd-Timer einrichten (meist bereits automatisch):
sudo crontab -e
# Add the following entry:
0 2 * * * /usr/bin/certbot renew --quiet
8. Sicherheitsoptimierungen
Für eine noch stärkere SSL-Sicherheit können folgende Direktiven ergänzt werden:
HSTS aktivieren (HTTP Strict Transport Security):
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
OCSP-Stapling aktivieren:
ssl_stapling on;
ssl_stapling_verify on;
Diffie-Hellman-Parameter generieren und verwenden:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
Anschließend die Datei in Nginx einbinden:
ssl_dhparam /etc/ssl/certs/dhparam.pem;
9. Fazit
Die Aktivierung von SSL/TLS auf Nginx mit Certbot ist eine unkomplizierte und sichere Methode, um verschlüsselte Kommunikation im Web zu gewährleisten. Die enge Verzahnung zwischen Certbot und Nginx vereinfacht Ausstellung und Erneuerung erheblich. Durch die Einhaltung bewährter Verfahren wie automatische Verlängerung, starke Cipher-Suiten und moderne Sicherheits-Header sichern Administratoren ihre Infrastruktur zuverlässig gegen gängige webbasierte Angriffe ab.
Kommentare 0
Noch keine Kommentare.
Kommentar schreiben