Schritt-für-Schritt-Anleitung zur Verwendung des Certbot von Let’s Encrypt, um ein kostenloses SSL-Zertifikat zu erhalten und es automatisch zu erneuern.
Let’s Encrypt ist vor allem Open Source und völlig kostenlos. Es ermöglicht jedem, ein vertrauenswürdiges SSL-Zertifikat auf seiner Website zu installieren und von der verbesserten Sicherheit zu profitieren, die eine verschlüsselte Verbindung bietet. Im Gegensatz zu einem selbstsignierten SSL-Zertifikat wird ein Let’s Encrypt-Zertifikat als vollständig verifiziert erkannt und zeigt das Vorhängeschloss-Symbol in der Adressleiste moderner Webbrowser an.
So funktioniert Let’s Encrypt
Vor der Ausstellung eines Zertifikats validiert Let’s Encrypt die Inhaberschaft Ihrer Domain. Der Client von Let’s Encrypt, der auf Ihrem Host ausgeführt wird, erstellt eine temporäre Datei (ein Token) mit den erforderlichen Informationen darin. Der Validierungsserver stellt dann eine HTTP-Anforderung zum Abrufen der Datei und validiert das Token, wodurch bestätigt wird, dass der DNS-Eintrag für Ihre Domain zu dem Server aufgelöst wird, auf dem der Let’s Encrypt-Client ausgeführt wird. Daher müssen die unten gezeigten Befehle auf dem Server ausgeführt werden, der Ihre Domain bedient, für die Sie das Zertifikat ausstellen.
1. Certbot installieren
Let’s Encrypt hat ein automatisches Installationsprogramm namens certbot
. Der erste Schritt zur Verwendung von Let’s Encrypt zum Erhalt eines SSL-Zertifikats besteht darin, es auf Ihrem Server zu installieren.
Ubuntu:
sudo apt install certbot python3-certbot-nginx
Debian:
sudo apt install certbot
CentOS:
sudo yum install epel-release
sudo yum install certbot-nginx
2. Erhalt von Let’s Encrypt-Zertifikaten
Wichtig! Bevor Sie ein kostenloses SSL-Zertifikat von Let’s Encrypt ausstellen, müssen Sie Ihren Webserverdienst beenden. Andernfalls erhalten Sie die folgende Fehlermeldung:
Problem binding to port 80: Could not bind to IPv4 or IPv6
Wenn Sie Nginx verwenden, führen Sie Folgendes aus:
sudo systemctl stop nginx
Jetzt können wir mit der Generierung des kostenlosen Let’s Encrypt-SSL-Zertifikats fortfahren:
sudo certbot certonly --standalone --preferred-challenges http -d my-domain.com
-d Option akzeptiert einen Domainnamen. Sie können mehrere -d
verwenden Optionen im einzelnen Befehl. Zum Beispiel:
sudo certbot certonly --standalone --preferred-challenges http -d my-domain.com -d www.my-domain.com
Wenn Sie zum ersten Mal certbot
ausführen , werden Sie aufgefordert, eine E-Mail-Adresse einzugeben und den Nutzungsbedingungen zuzustimmen. Danach certbot
kommuniziert mit dem Let’s Encrypt-Server und führt dann eine Abfrage aus, um zu bestätigen, dass Sie die Domain kontrollieren, für die Sie ein Zertifikat anfordern.
Wenn das erfolgreich ist, certbot
wird mit einer Meldung abschließen, die Ihnen mitteilt, dass der Vorgang erfolgreich war und wo Ihre Zertifikate gespeichert sind.
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/my-domain.com/fullchain.pem. Your cert will
expire on 2022-08-08. To obtain a new or tweaked version of this
certificate in the future, simply run certbot again with the
"certonly" option. To non-interactively renew all of your
certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
3. Zertifikate verifizieren
Listen Sie Ihre Zertifikate auf, die in /etc/letsencrypt/live/my-domain.com
Verzeichnis.
ls -l /etc/letsencrypt/live/my-domain.com/
total 4
-rw-r--r-- 1 root root 692 Mar 10 08:24 README
lrwxrwxrwx 1 root root 37 Mar 10 08:24 cert.pem -> ../../archive/my-domain.com/cert1.pem
lrwxrwxrwx 1 root root 38 Mar 10 08:24 chain.pem -> ../../archive/my-domain.com/chain1.pem
lrwxrwxrwx 1 root root 42 Mar 10 08:24 fullchain.pem -> ../../archive/my-domain.com/fullchain1.pem
lrwxrwxrwx 1 root root 40 Mar 10 08:24 privkey.pem -> ../../archive/my-domain.com/privkey1.pem
4. Ändern Sie die Webserver-Konfiguration
Damit Ihr Webserver das kostenlose SSL-Zertifikat von Let’s Encrypt verwenden kann, müssen Sie es in seiner Konfiguration angeben. Wenn Sie beispielsweise Nginx verwenden, müssen Sie Ihrer Domänenkonfigurationsdatei /etc/nginx/sites-enabled/my-domain.conf
den folgenden Block hinzufügen
server {
listen 443;
server_name my-domain.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/my-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/my-domain.com/privkey.pem;
}
Das ist es. Alle Dinge sind eingestellt und erledigt. Jetzt müssen Sie nur noch Ihren Webserver starten:
sudo systemctl start nginx
Schließlich können Sie überprüfen, ob Ihre Website jetzt SSL-geschützt ist. Öffnen Sie einfach die Website im Browser und prüfen Sie, ob das Vorhängeschloss-Symbol verfügbar ist.
5. Automatische Erneuerung der Let’s Encrypt-Zertifikate
Die Zertifikate sind 90 Tage gültig. Sie können 30 Tage vor Ablauf verlängert werden. Hier fügen wir einen Cron-Job hinzu, der sie automatisch verlängert.
Öffnen Sie also zuerst die Crontab-Datei:
sudo crontab -e
Fügen Sie danach den certbot
hinzu Befehl zur wöchentlichen Ausführung:
@weekly certbot renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx" --renew-hook "systemctl reload nginx" --quiet
Fazit
In diesem Tutorial haben wir gesehen, wie man ein kostenloses SSL-Zertifikat von Let’s Encrypt installiert, um eine Website zu sichern. Außerdem können Sie auf der offiziellen Let’s Encrypt-Website weitere Informationen und Details finden.