Einführung
Let's Encrypt ist eine neue Zertifizierungsstelle (Certificate Authority, CA), mit der auf einfache Weise kostenlose TLS / SSL-Zertifikate abgerufen und installiert werden können, wodurch verschlüsseltes HTTPS auf Webservern ermöglicht wird. Es vereinfacht den Prozess, indem ein Software-Client, Certbot, bereitgestellt wird, der versucht, die meisten (wenn nicht alle) der erforderlichen Schritte zu automatisieren. Derzeit ist der gesamte Vorgang zum Abrufen und Installieren eines Zertifikats sowohl auf Apache- als auch auf Nginx-Webservern vollständig automatisiert.
In diesem Tutorial zeigen wir Ihnen, wie Sie mit Certbot ein kostenloses SSL-Zertifikat erhalten und mit Nginx unter Ubuntu 14.04 LTS verwenden können. Wir zeigen Ihnen auch, wie Sie Ihr SSL-Zertifikat automatisch erneuern können.
In diesem Lernprogramm wird anstelle einer separaten Serverblockdatei die Standardkonfigurationsdatei von Nginx verwendet. We recommenderstellt neue Nginx-Serverblockdateien für jede Domäne, da dies dazu beiträgt, einige häufige Fehler zu vermeiden und die Standarddateien wie vorgesehen als Fallback-Konfiguration beibehalten. Wenn Sie SSL stattdessen mithilfe von Serverblöcken einrichten möchten, können Siethis Nginx server blocks with Let’s Encrypt tutorial folgen.
Voraussetzungen
Bevor Sie diesem Tutorial folgen, benötigen Sie einige Dinge.
-
Ein Ubuntu 14.04-Server mit einem Nicht-Root-Benutzer, der über die Berechtigungen von
sudo
verfügt. Sie können lernen, wie Sie ein solches Benutzerkonto einrichten, indem Sie unsereninitial server setup for Ubuntu 14.04 tutorial folgen. -
Nginx installiert,How To Install Nginx on Ubuntu 14.04 LTS
-
Sie müssen den registrierten Domainnamen besitzen oder kontrollieren, mit dem Sie das Zertifikat verwenden möchten. Wenn Sie noch keinen registrierten Domainnamen haben, können Sie einen bei einem der vielen Domainnamen-Registrare registrieren (z. Namecheap, GoDaddy usw.).
-
Ein DNSA Record, das Ihre Domain auf die öffentliche IP-Adresse Ihres Servers verweist. Sie könnenthis hostname tutorial folgen, um Details zum Hinzufügen zu erhalten. Dies ist erforderlich, da Let’s Encrypt überprüft, ob Sie die Domäne besitzen, für die ein Zertifikat ausgestellt wird. Wenn Sie beispielsweise ein Zertifikat für
example.com
erhalten möchten, muss diese Domäne auf Ihrem Server aufgelöst werden, damit der Validierungsprozess funktioniert. Unser Setup verwendetexample.com
undwww.example.com
als Domainnamen, alsoboth DNS records are required.
Nachdem Sie alle Voraussetzungen erfüllt haben, können Sie Certbot, die Let's Encrypt-Clientsoftware, installieren.
[[Schritt-1 - Installieren von Certbot]] == Schritt 1 - Installieren von Certbot
Der erste Schritt zur Verwendung von Let's Encrypt zum Abrufen eines SSL-Zertifikats besteht darin, diecertbot
-Software auf Ihrem Server zu installieren. Die Certbot-Entwickler unterhalten ein eigenes Ubuntu-Software-Repository mit aktuellen Versionen der Software. Da sich Certbot in einer so aktiven Entwicklung befindet, lohnt es sich, dieses Repository zu verwenden, um einen neueren Certbot als den von Ubuntu bereitgestellten zu installieren.
Fügen Sie zunächst das Repository hinzu:
sudo add-apt-repository ppa:certbot/certbot
Sie müssenENTER
drücken, um zu akzeptieren. Aktualisieren Sie anschließend die Paketliste, um die Paketinformationen des neuen Repositorys abzurufen:
sudo apt-get update
Und schließlich installieren Sie Certbot mitapt-get
:
sudo apt-get install python-certbot-nginx
Dercertbot
Let's Encrypt-Client ist jetzt einsatzbereit.
[[Schritt-2 - Einrichten von Nginx]] == Schritt 2 - Einrichten von Nginx
Certbot kann SSL für Nginx automatisch konfigurieren, muss jedoch in der Lage sein, den richtigenserver
-Block in Ihrer Konfiguration zu finden. Dazu wird nach einerserver_name
-Richtlinie gesucht, die der Domain entspricht, für die Sie ein Zertifikat anfordern. Wenn Sie mit einer neuen Nginx-Installation beginnen, können Sie die Standardkonfigurationsdatei aktualisieren:
sudo nano /etc/nginx/sites-available/default
Suchen Sie die vorhandeneserver_name
-Zeile:
/etc/nginx/sites-available/default
server_name localhost;
Ersetzen Sielocalhost
durch Ihren Domainnamen:
/etc/nginx/sites-available/default
server_name example.com www.example.com;
Speichern Sie die Datei und beenden Sie Ihren Editor. Überprüfen Sie die Syntax Ihrer Konfigurationsänderungen mit:
sudo nginx -t
Läuft dies fehlerfrei, laden Sie Nginx neu, um die neue Konfiguration zu laden:
sudo service nginx reload
Certbot kann nun den richtigenserver
-Block finden und aktualisieren. Jetzt aktualisieren wir unsere Firewall, um HTTPS-Verkehr zuzulassen.
[[Schritt-3 -—- Erhalten eines SSL-Zertifikats]] == Schritt 3 - Erhalten eines SSL-Zertifikats
Certbot bietet eine Vielzahl von Möglichkeiten, SSL-Zertifikate über verschiedene Plugins zu erhalten. Das Nginx-Plugin kümmert sich um die Neukonfiguration von Nginx und das erneute Laden der Konfiguration, wann immer dies erforderlich ist:
sudo certbot --nginx -d example.com -d www.example.com
Dadurch wirdcertbot
mit dem Plugin--nginx
ausgeführt, wobei-d
verwendet wird, um die Namen anzugeben, für die das Zertifikat gültig sein soll.
Wenn Siecertbot
zum ersten Mal ausführen, werden Sie aufgefordert, eine E-Mail-Adresse einzugeben und den Nutzungsbedingungen zuzustimmen. Danach kommuniziertcertbot
mit dem Let's Encrypt-Server und führt dann eine Herausforderung aus, um zu überprüfen, ob Sie die Domäne steuern, für die Sie ein Zertifikat anfordern.
Wenn dies erfolgreich ist, werden Sie voncertbot
gefragt, wie Sie Ihre HTTPS-Einstellungen konfigurieren möchten:
OutputPlease choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
Wählen Sie Ihre Wahl und drücken SieENTER
. Die Konfiguration wird aktualisiert und Nginx wird neu geladen, um die neuen Einstellungen zu übernehmen. certbot
wird mit einer Nachricht abgeschlossen, die Ihnen mitteilt, dass der Prozess erfolgreich war und wo Ihre Zertifikate gespeichert sind:
OutputIMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your cert will
expire on 2017-10-23. 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
Ihre Zertifikate werden jetzt heruntergeladen, installiert und konfiguriert. Laden Sie Ihre Website mithttps://
neu und beachten Sie die Sicherheitsanzeige Ihres Browsers. Dies sollte bedeuten, dass die Site ordnungsgemäß gesichert ist, normalerweise mit einem grünen Schlosssymbol. Wenn Sie Ihren Server mitSSL Labs Server Testtesten, erhält er die NoteA.
[[Schritt 4 - Überprüfung der automatischen Erneuerung von Certbot]] == Schritt 4 - Überprüfung der automatischen Erneuerung von Certbot
Let´s Encrypt-Zertifikate sind nur neunzig Tage gültig. Dies soll Benutzer dazu ermutigen, ihren Zertifikaterneuerungsprozess zu automatisieren. Das von uns installiertecertbot
-Paket erledigt dies für uns, indem es zweimal täglich über einen systemd-Timer "certbot erneuern" ausführt. Bei Nicht-Systemd-Distributionen wird diese Funktionalität durch ein in/etc/cron.d
platziertes Skript bereitgestellt. Diese Aufgabe wird zweimal täglich ausgeführt und erneuert jedes Zertifikat, das innerhalb von 30 Tagen nach Ablauf der Gültigkeit abgelaufen ist.
Um den Erneuerungsprozess zu testen, können Sie einen Trockenlauf mitcertbot
durchführen:
sudo certbot renew --dry-run
Wenn Sie keine Fehler sehen, sind Sie fertig. Bei Bedarf erneuert Certbot Ihre Zertifikate und lädt Nginx neu, um die Änderungen zu übernehmen. Wenn die automatische Erneuerung jemals fehlschlägt, sendet Let’s Encrypt eine Nachricht an die von Ihnen angegebene E-Mail-Adresse und warnt Sie, wenn Ihr Zertifikat in Kürze abläuft.
Fazit
In diesem Tutorial haben wir den Let's Encrypt-Clientcertbot
installiert, SSL-Zertifikate für unsere Domain heruntergeladen, Nginx für die Verwendung dieser Zertifikate konfiguriert und die automatische Zertifikatserneuerung eingerichtet. Wenn Sie weitere Fragen zur Verwendung von Certbot haben, isttheir documentation ein guter Ausgangspunkt.