BLOG | NGINX

Aktualisieren: Kostenlose Let’s Encrypt SSL/TLS-Zertifikate mit NGINX verwenden

NGINX-Teil-von-F5-horiz-schwarz-Typ-RGB
Amir Rawdat Miniaturbild
Amir Rawdat
Veröffentlicht am 28. Januar 2021

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.

So funktioniert Let’s Encrypt

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.

Voraussetzungen

Bevor Sie mit Let’s Encrypt beginnen, müssen Sie:

  • Lassen Sie NGINX oder NGINX Plus installieren.
  • Besitzen oder kontrollieren Sie den registrierten Domänennamen für das Zertifikat. Wenn Sie keinen registrierten Domänennamen haben, können Sie einen Domänennamen-Registrar wie GoDaddy oder dnsexit verwenden.
  • Erstellen Sie einen DNS-Eintrag, der Ihren Domänennamen und die öffentliche IP-Adresse Ihres Servers verknüpft.

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.

1. Laden Sie den Let’s Encrypt-Client herunter

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

2. NGINX einrichten

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 .

  1. 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 ).

  2. 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;
    }
  3. 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

3. Erhalten Sie das SSL/TLS-Zertifikat

Das NGINX-Plugin für Certbot kümmert sich darum, NGINX neu zu konfigurieren und seine Konfiguration bei Bedarf neu zu laden.

  1. 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
  2. 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.

  3. 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
}

4. Automatische Erneuerung von Let’s Encrypt-Zertifikaten

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.

  1. Öffnen Sie die Crontab- Datei.

    $ crontab -e
  2. 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
  3. Speichern und schließen Sie die Datei. Alle installierten Zertifikate werden automatisch erneuert und neu geladen.

  4. Zusammenfassung

    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 .

    Verwandte Themen

    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."