Nginx-Webserver mit Let's Encrypt absichern
Let's Encrypt ist eine Zertifizierungsstelle, die eine einfache Möglichkeit bietet, kostenlose TLS/SSL-Zertifikate zu erhalten und zu installieren. Damit lässt sich HTTPS auf Webservern unkompliziert aktivieren.
Der Prozess wird durch das Tool Certbot automatisiert, das die meisten Schritte zur Zertifikatsausstellung übernimmt. In dieser Anleitung wird Certbot genutzt, um ein SSL-Zertifikat für Nginx unter Ubuntu oder Debian einzurichten und die automatische Verlängerung zu konfigurieren.
Voraussetzungen
- Ubuntu- oder Debian-Server mit Root-Zugriff
- Eine registrierte Domain (im Beispiel: example.com)
- DNS-Einträge:
- A-Record für example.com → Server-IP
- A-Record oder CNAME für www.example.com → Server-IP
- Installierter Nginx-Webserver
Schritt 1 – Certbot installieren
Repository hinzufügen:
sudo add-apt-repository ppa:certbot/certbot
Paketlisten aktualisieren:
sudo apt-get update
Certbot installieren:
sudo apt-get install python-certbot-nginx
Certbot ist nun installiert. Vor der Zertifikatsausstellung muss jedoch die Nginx-Konfiguration stimmen.
Schritt 2 – Nginx konfigurieren
Certbot muss den korrekten Serverblock erkennen können.
Der server_name muss auf die gewünschte Domain gesetzt sein.
sudo nano /etc/nginx/sites-available/default
Syntax prüfen:
sudo nginx -t
Konfiguration neu laden:
sudo systemctl reload nginx
Schritt 3 – SSL-Zertifikat beziehen
sudo certbot --nginx -d example.com -d www.example.com
Beim ersten Start fragt Certbot nach einer E-Mail-Adresse und der Zustimmung zu den Nutzungsbedingungen.
Anschließend wird geprüft, ob die Domain dem Server gehört.
Danach fragt Certbot, ob HTTP auf HTTPS umgeleitet werden soll:
1: No redirect 2: Redirect
Option 2 ist in der Regel empfehlenswert. HTTP-Aufrufe werden dann automatisch auf HTTPS umgeleitet.
Nach erfolgreicher Ausstellung zeigt Certbot die Speicherorte der Zertifikate an. Die Seite ist danach über HTTPS erreichbar.
Schritt 4 – Automatische Verlängerung prüfen
Let's Encrypt-Zertifikate sind 90 Tage gültig. Certbot richtet automatisch einen Timer ein, der Zertifikate rechtzeitig erneuert.
Testlauf:
sudo certbot renew --dry-run
Wenn keine Fehler auftreten, funktioniert die automatische Verlängerung. Bei Problemen sendet Let's Encrypt eine Benachrichtigung per E-Mail.