Herausgeber – Der Blogbeitrag mit der detaillierten Beschreibung des ursprünglichen Verfahrens zur Verwendung von Let’s Encrypt mit NGINX (vom Februar 2016) leitet hierher weiter. Die Anweisungen in diesem Beitrag sind veraltet.
Dieser Beitrag wurde aktualisiert, um die Abhängigkeit von certbot‑auto
zu beseitigen , das die Electronic Frontier Federation (EFF) in Certbot 1.10.0 für Debian und Ubuntu und in Certbot 1.11.0 für alle anderen Betriebssysteme abgelehnt hat. Weitere Einzelheiten und alternative Installationsmethoden finden Sie in diesem Beitrag der EFF .
Lesen Sie auch unseren Blogbeitrag von der nginx.conf 2015, in dem Peter Eckersley und Yan Zhu von der Electronic Frontier Foundation die damals neue Zertifizierungsstelle Let’s Encrypt vorstellen .
Es ist bekannt, dass die SSL/TLS-Verschlüsselung Ihrer Website zu einem höheren Suchranking und einer besseren Sicherheit für Ihre Benutzer führt. Es gibt jedoch eine Reihe von Hindernissen, die Websitebesitzer davon abhalten, SSL einzuführen.
Zwei der größten Hindernisse waren die Kosten und die manuellen Prozesse, die mit der Erlangung eines Zertifikats verbunden sind. Doch dank Let‘s Encrypt sind sie nun kein Problem mehr. Let’s Encrypt macht die SSL/TLS-Verschlüsselung für jeden kostenlos verfügbar.
Let’s Encrypt ist eine kostenlose, automatisierte und offene Zertifizierungsstelle (CA). Ja, das stimmt: Kostenlose SSL/TLS-Zertifikate. Von Let’s Encrypt ausgestellte Zertifikate werden heutzutage von den meisten Browsern als vertrauenswürdig eingestuft, einschließlich älterer Browser wie Internet Explorer unter Windows XP SP3. Darüber hinaus automatisiert Let’s Encrypt sowohl die Ausstellung als auch die Erneuerung von Zertifikaten vollständig.
In diesem Blogbeitrag erläutern wir, wie Sie mit dem Let’s Encrypt-Client Zertifikate generieren und wie Sie NGINX Open Source und NGINX Plus automatisch für deren Verwendung konfigurieren.
Vor der Ausstellung eines Zertifikats überprüft Let’s Encrypt den Besitz Ihrer Domain. Der auf Ihrem Host ausgeführte Let’s-Encrypt-Client erstellt eine temporäre Datei (ein Token) mit den erforderlichen Informationen. Der Validierungsserver von Let’s Encrypt sendet dann eine HTTP-Anfrage zum Abrufen der Datei und validiert das Token. Dadurch wird sichergestellt, dass der DNS-Eintrag für Ihre Domäne auf den Server aufgelöst wird, auf dem der Let’s Encrypt-Client ausgeführt wird.
Bevor Sie mit Let’s Encrypt beginnen, müssen Sie:
Jetzt können Sie Let’s Encrypt ganz einfach mit NGINX Open Source oder NGINX Plus einrichten (der Einfachheit halber sprechen wir von nun an nur noch von NGINX ).
Notiz : Wir haben das in diesem Blogbeitrag beschriebene Verfahren auf Ubuntu 16.04 (Xenial) getestet.
Laden Sie zunächst den Let’s Encrypt-Client certbot
herunter.
Wie oben erwähnt, haben wir die Anweisungen unter Ubuntu 16.04 getestet und dies sind die entsprechenden Befehle für diese Plattform:
$ apt-get update $ sudo apt-get installiere certbot $ apt-get installiere python-certbot-nginx
Ersetzen Sie unter Ubuntu 18.04 und höher die Python 3-Version:
$ apt-get update $ sudo apt-get installiere certbot $ apt-get installiere python3-certbot-nginx
certbot
kann NGINX automatisch für SSL/TLS konfigurieren. Es sucht und ändert den Serverblock
in Ihrer NGINX-Konfiguration, der eine Servername-
Direktive mit dem Domänennamen enthält, für den Sie ein Zertifikat anfordern. In unserem Beispiel ist die Domäne www.example.com .
Angenommen, Sie beginnen mit einer Neuinstallation von NGINX. Verwenden Sie einen Texteditor, um im Verzeichnis /etc/nginx/conf.d eine Datei mit dem Namen „Domänenname .conf“ zu erstellen (in unserem Beispiel also www.example.com.conf ).
Geben Sie Ihren Domänennamen (und ggf. Varianten) mit der Direktive „server_name“
an:
Server { listen 80 Standardserver;
listen [::]:80 Standardserver;
root /var/www/html;
Servername example.com www.example.com;
}
Speichern Sie die Datei und führen Sie dann diesen Befehl aus, um die Syntax Ihrer Konfiguration zu überprüfen und NGINX neu zu starten:
$ nginx -t und nginx -s neu laden
Das NGINX-Plugin für Certbot
kümmert sich darum, NGINX neu zu konfigurieren und seine Konfiguration bei Bedarf neu zu laden.
Führen Sie den folgenden Befehl aus, um Zertifikate mit dem NGINX‑Plug‑In zu generieren:
$ sudo certbot --nginx -d example.com -d www.example.com
Reagieren Sie auf die Aufforderungen von Certbot
, Ihre HTTPS-Einstellungen zu konfigurieren. Dazu müssen Sie Ihre E-Mail-Adresse eingeben und den Nutzungsbedingungen von Let’s Encrypt zustimmen.
Wenn die Zertifikatsgenerierung abgeschlossen ist, wird NGINX mit den neuen Einstellungen neu geladen. certbot
generiert eine Meldung, die angibt, dass die Zertifikatsgenerierung erfolgreich war, und den Speicherort des Zertifikats auf Ihrem Server angibt.
Glückwunsch! Sie haben https://example.com und https://www.example.com erfolgreich aktiviert.
-------------------------------------------------------------------------------------
WICHTIGE HINWEISE:
Glückwunsch! Ihr Zertifikat und Ihre Kette wurden gespeichert unter:
/etc/letsencrypt/live/example.com/fullchain.pem
Ihre Schlüsseldatei wurde gespeichert unter:
/etc/letsencrypt/live/example.com//privkey.pem
Ihr Zertifikat läuft am 12.12.2017 ab.
Notiz : Let’s Encrypt-Zertifikate laufen nach 90 Tagen ab (im Beispiel am 12.12.2017). Informationen zur automatischen Verlängerung von Zertifikaten finden Sie weiter unten unter „Automatische Verlängerung von Let’s Encrypt-Zertifikaten“ .
Wenn Sie sich die Datei „domain‑name.conf “ ansehen, sehen Sie, dass certbot
sie geändert hat:
Server { listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
Servername example.com www.example.com;
listen 443 ssl; # verwaltet von Certbot
# RSA-Zertifikat
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # verwaltet von Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # verwaltet von Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # verwaltet von Certbot
# Nicht-https-Verkehr auf https umleiten
if ($scheme != "https") {
return 301 https://$host$request_uri;
} # verwaltet von Certbot
}
Let’s Encrypt-Zertifikate laufen nach 90 Tagen ab. Wir empfehlen Ihnen, Ihre Zertifikate automatisch zu erneuern. Hier fügen wir dazu einen Cron-
Job zu einer bestehenden Crontab- Datei hinzu.
Öffnen Sie die Crontab- Datei.
$ crontab -e
Fügen Sie den Befehl „Certbot“
hinzu, um ihn täglich auszuführen. In diesem Beispiel führen wir den Befehl jeden Tag mittags aus. Der Befehl prüft, ob das Zertifikat auf dem Server innerhalb der nächsten 30 Tage abläuft und erneuert es ggf. Die Direktive --quiet
weist certbot
an, keine Ausgabe zu generieren.
0 12 * * * /usr/bin/certbot erneuern --quiet
Speichern und schließen Sie die Datei. Alle installierten Zertifikate werden automatisch erneuert und neu geladen.
Wir haben den Let’s Encrypt-Agenten installiert, um SSL/TLS-Zertifikate für einen registrierten Domänennamen zu generieren. Wir haben NGINX für die Verwendung der Zertifikate konfiguriert und automatische Zertifikatserneuerungen eingerichtet. Mit den Let’s Encrypt-Zertifikaten für NGINX und NGINX Plus können Sie innerhalb von Minuten eine einfache, sichere Website erstellen und betreiben.
Um Let’s Encrypt mit NGINX Plus selbst auszuprobieren, starten Sie noch heute Ihre kostenlose 30-Tage-Testversion oder kontaktieren Sie uns, um Ihre Anwendungsfälle zu besprechen .
Sichern des HTTP-Verkehrs zu Upstream-Servern
Sichern des TCP-Verkehrs zu Upstream-Servern
NGINX SSL-Terminierung
„Dieser Blogbeitrag kann auf Produkte verweisen, die nicht mehr verfügbar und/oder nicht mehr unterstützt werden. Die aktuellsten Informationen zu verfügbaren F5 NGINX-Produkten und -Lösungen finden Sie in unserer NGINX-Produktfamilie . NGINX ist jetzt Teil von F5. Alle vorherigen NGINX.com-Links werden auf ähnliche NGINX-Inhalte auf F5.com umgeleitet."