So richten Sie Nginx mit Let’s Encrypt unter Ubuntu 20.04 ein

Um eine sichere Kommunikation (dh HTTPS) auf Ihrem NGINX-Webserver zu ermöglichen, müssen Sie ein SSL/TLS-Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle beziehen. Lass uns verschlüsseln ist eine gemeinnützige Zertifizierungsstelle, die kostenlose SSL/TLS-Zertifikate anbietet.

In diesem Tutorial wird beschrieben, wie Sie ein kostenloses SSL/TLS-Zertifikat einrichten, das von Let’s Encrypt ausgestellt wurde auf Ubuntu 20.04 LTS-Server läuft Nginx.

Voraussetzungen:

  • Ubuntu 20.04 Server mit Nginx und gehosteter Website installiert

Certbot unter Ubuntu installieren

Certbot ist ein Open-Source-Tool, das den Prozess des Abrufens und Erneuerns von Zertifikaten von Let’s Encrypt vereinfacht und automatisiert. Wir werden Certbot mit dem Snap-Bereitstellungssystem installieren. Snap ist auf Ubuntu 20.04 vorinstalliert.

Snapd aktualisieren

Führen Sie die folgenden Befehle aus, um snapd zu aktualisieren.

$ sudo snap install core

$ sudo snap refresh core

certbot snap installieren

Als Nächstes sind wir bereit, den Certbot-Snap zu installieren.

Notiz: Wenn Sie Certbot zuvor mit dem Standardbefehl apt installiert haben, führen Sie zuerst den folgenden Befehl aus, um ihn zu entfernen. Dadurch wird sichergestellt, dass der Certbot-Snap korrekt funktioniert.

$ sudo apt-get remove certbot

$ sudo snap install --classic certbot
certbot 1.11.0 from Certbot Project (certbot-eff✓) installed

certbot-Befehl aktivieren

Führen Sie nach erfolgreicher Installation des Certbot-Snaps den nächsten Befehl aus, um ihn zu aktivieren certbot für den Einsatz.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Holen Sie sich Ihr Zertifikat

Wenn Sie den folgenden Befehl ausführen, führt Sie certbot durch den Rest des Prozesses. Certbot aktualisiert auch Ihre NGINX-Konfiguration automatisch, um HTTPS zu aktivieren.

$ sudo certbot --nginx

Nachfolgend finden Sie eine Zusammenfassung dessen, was certbot Sie während dieses Vorgangs auffordert.

  1. Geben Sie eine E-Mail-Adresse an, an die Verlängerungs- und Sicherheitshinweise gesendet werden
  2. Enter Ja um die Nutzungsbedingungen zu akzeptieren
  3. Enter Ja oder n um die Weitergabe Ihrer E-Mail-Adresse an die Entwickler von Certbot . zu akzeptieren oder abzulehnen
  4. Bestätigen Sie den/die Domainnamen, für die Sie HTTPS aktivieren möchten

Ausgabe:

Debug-Protokoll in /var/log/letsencrypt/letsencrypt.log speichern Ausgewählte Plugins: Authenticator nginx, Installer nginx
Enter E-Mail-Adresse (wird für dringende Verlängerungs- und Sicherheitshinweise verwendet) (Enter ‘c’ zum Abbrechen): [email protected] – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Bitte lesen Sie die Nutzungsbedingungen unter https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Sie müssen zustimmen, um sich beim ACME-Server zu registrieren. Sind Sie einverstanden? – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – (Ja Nein: y – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Wären Sie bereit, einmal Ihr erstes Zertifikat erfolgreich ausgestellt wurde, um Ihre E-Mail-Adresse mit der Electronic Frontier Foundation, einem Gründungspartner des Let’s Encrypt-Projekts und der gemeinnützigen Organisation, die Certbot entwickelt, zu teilen? Wir möchten Ihnen eine E-Mail über unsere Arbeit zur Verschlüsselung des Internets, EFF-Nachrichten, Kampagnen und Möglichkeiten zur Unterstützung der digitalen Freiheit senden. – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – (Ja Nein: n Konto registriert. Für welche Namen möchten Sie HTTPS aktivieren? – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – 1: domain1.com 2: www.domain1 .com – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Wählen Sie die entsprechenden Zahlen durch Kommas getrennt und /oder Leerzeichen, oder lassen Sie die Eingabe leer, um alle angezeigten Optionen auszuwählen (Enter ‘c’ zum Abbrechen): Anfordern eines Zertifikats für domain1.com und www.domain1.com Durchführen der folgenden Challenges: http-01 Challenge für domain1.com http-01 Challenge für www.domain1.com Warten auf Verifizierung… Reinigung up-Herausforderungen Bereitstellen des Zertifikats auf VirtualHost /etc/nginx/sites-enabled/domain1 Bereitstellen des Zertifikats auf VirtualHost /etc/nginx/sites-enabled/domain1 Umleiten des gesamten Datenverkehrs auf Port 80 zu SSL in /etc/nginx/sites-enabled/domain1 Redirecting der gesamte Verkehr auf Port 80 zu ssl in /etc/nginx/sites-enabled/domain1 – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Herzliche Glückwünsche! Sie haben https://domain1.com und https://www.domain1.com erfolgreich aktiviert – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – WICHTIGE HINWEISE: – Herzlichen Glückwunsch! Ihr Zertifikat und Ihre Kette wurden gespeichert unter: /etc/letsencrypt/live/domain1.com/fullchain.pem Ihre Schlüsseldatei wurde gespeichert unter: /etc/letsencrypt/live/domain1.com/privkey.pem Ihr Zertifikat läuft am ab 2021-04-10. Um in Zukunft eine neue oder optimierte Version dieses Zertifikats zu erhalten, führen Sie certbot einfach erneut mit der Option “certonly” aus. Um *alle* Ihrer Zertifikate nicht interaktiv zu erneuern, führen Sie “certbot renew” aus. https://eff.org/donate-le

Cerbot fügt die folgenden Einträge (Sätze, die von Certbot verwaltet werden) in die nginx-Blockdatei ein.

/etc/nginx/sites-enabled/domain1

$ cat /etc/nginx/sites-enabled/domain1
# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
server {

server_name domain1.com www.domain1.com;

root /var/www/domain1.com;
index index.html;

location / {
try_files $uri $uri/ =404;
}

listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/domain1.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/domain1.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

server {
if ($host = www.domain1.com) {
return 301 https://$host$request_uri;
} # managed by Certbot

if ($host = domain1.com) {
return 301 https://$host$request_uri;
} # managed by Certbot

listen 80;
listen [::]:80;

server_name domain1.com www.domain1.com;
return 404; # managed by Certbot
}
$

Durchsuchen Sie Ihre Website, um zu bestätigen, dass das Schlosssymbol jetzt angezeigt wird.

Zertifikatsverlängerungsprozess

Von Let’s Encrypt ausgestellte Zertifikate sind 90 Tage gültig. Während der Installation erstellt certbot eine geplante Aufgabe, um Ihre Zertifikate automatisch zu erneuern, bevor sie ablaufen. Solange Sie Ihre Webserver-Konfiguration nicht ändern, müssen Sie certbot nicht erneut ausführen.

Führen Sie den folgenden Befehl aus, um den automatischen Erneuerungsprozess zu testen.

$ sudo certbot renew --dry-run

Fazit

In diesem Handbuch haben wir gelernt, wie man ein SSL-Zertifikat auf einem NGINX-Webserver mit Ubuntu 20.04 einrichtet.

Anstelle von Cerbot können Sie auch verwenden GIPFEL Shell-Skript zum automatischen Ausstellen und Erneuern der kostenlosen Zertifikate von Let’s Encrypt.

Wenn etwas unklar ist, teilen Sie uns dies im Kommentarbereich unten mit.