Let's Encrypt ist eine freie, offene und automatisierte Zertifizierungsstelle für SSL-Zertifikate. Die erste Version der Software kann automatisiert allerdings nur Zertifikate für Apache-Webserver erstellen. Um ein SSl Zertifikat für einen Nginx-Webserver zu erstellen, ist noch ein wenig „Handarbeit“ nötig.
Achtung: Da sich Let's Encrypt momentan in einer Limited Beta befindet, sind die damit erstellten Zertifikate noch nicht Trusted, sollten also nicht produktiv verwendet werden.
Installation
Git
Zuerst brauchen wir Git auf unserem System, auf Debian-basierten Distributionen installiert ihr es mit:
sudo apt-get install git
Falls ihr eine andere Distribution nutzt, findet ihr ausführliche Installationsanweisen auf der Git-Homepage im Artikel Installing Git.
Let's Encrypt
Zur Installation von Let's Encrypt klont ihr nun einfach das Git-Repository:
git clone https://github.com/letsencrypt/letsencrypt
Zertifikat erstellen
Nun kommt der etwas trickreichere Part. Let's Encrypt braucht zum Verifizieren und Erstellen des Zertifikats einen Webserver, dafür kann es einen bereits vorhandenen Apache-Webserver benutzen oder einen temporären eigenen Webserver starten. Da wir Nginx verwenden, fällt die Option des Apache-Webservers schonmal weg. Damit Let's Encrypt aber den eigenen temporären Webserver starten kann, müssen wir unseren Nginx-Webserver kurzfristig beenden, damit er Port 80 und 443 freigibt.
sudo service nginx stop
Anschließend wechselt ihr in den neuen Ordner und könnt mit dem Befehl letsencrypt-auto euer Zertifikat erstellen. Die Domain example.org müsst ihr in den folgenden Befehlen natürlich durch eure eigene Domain ersetzen.
cd letsencrypt
./letsencrypt-auto certonly -d example.org
Im Dialog „How would you like to authenticate with the Let's Encrypt CA?“ wählt ihr nun den Punkt 2 „Automatically use a temporary webserver (standalone)“.
Dann startet ihr erstmal wieder den Nginx, damit eure Webseite wieder erreichbar ist:
sudo service nginx start
Let's Encrypt hat die Zertifikate nun im Ordner /etc/letsencrypt/live/example.org/ abgelegt. Damit euer Nginx diese benutzt, müsst ihr folgende Zeilen in eure Seitenkonfiguration für die entsprechende Domain aufnehmen:
ssl on;
ssl_certificate /etc/letsencrypt/live/example.org/privkey.pem
ssl_certificate_key /etc/letsencrypt/live/example.org/fullchain.pem
Zum Abschluss weist ihr euren Nginx noch an, die geänderte Seitenkonfiguration neu einzulesen und zu benutzen:
sudo service nginx reload
Wenn alles geklappt hat, ist euer neues Let's Encrypt SSL-Zertifikat nun auf eurer Seite installiert.
Kommentare