GNU/Linux >> LINUX-Kenntnisse >  >> Rocky Linux

So installieren Sie Let’s Encrypt SSL für NGINX unter Rocky Linux 8

Sicherheit ist eines der wichtigsten Anliegen für Website-Eigentümer, insbesondere wenn Sie einen E-Commerce-Shop oder eine Website betreiben, die vertrauliche Informationen von Benutzern wie Benutzernamen und Passwörter akzeptiert. Das reine HTTP-Protokoll ist unsicher, da Daten im Klartext gesendet werden und Hacker die Kommunikation zum und vom Webserver abhören können.

Um dieses Risiko zu umgehen, wird empfohlen, einen Webserver mit einem TLS/SSL-Zertifikat zu sichern. Dies ist ein kryptografisches digitales Zertifikat, das Ihren Webserver verschlüsselt und sicherstellt, dass die mit dem Webserver ausgetauschten Daten verschlüsselt sind.

Das SSL-Zertifikat von Let’s Encrypt ist ein digitales Zertifikat, das von Let’s Encrypt CA (Certificate Authority) bereitgestellt wird, um einen Webserver zu sichern. Es ist ein kostenloses TLS/SSL-Zertifikat, das nur 90 Tage gültig ist und vor Ablauf verlängert werden muss. Es ist vorteilhaft für Startups oder Einzelpersonen, die sich kein Premium-SSL-Zertifikat für ihre Blogs oder Websites leisten können.

In diesem Leitfaden zeigen wir, wie Sie das SSL/TLS-Zertifikat von Let’s Encrypt für NGINX auf Rocky Linux 8 installieren können

Was Sie brauchen

Stellen Sie zunächst sicher, dass Sie über eine Instanz von Rocky Linux 8-Server in der Cloud oder vor Ort verfügen und bereits mit einem sudo-Benutzer konfiguriert sind.

Stellen Sie als Nächstes sicher, dass Sie einen vollständig qualifizierten Domänennamen (FQDN) haben, der auf die öffentliche IP Ihres Servers verweist. Um dies zu erreichen, gehen Sie zu Ihrem Domain-Registrar und konfigurieren Sie in den DNS-Einstellungen den A-Eintrag, um den Domainnamen auf die öffentliche IP des Servers zu verweisen. Unten ist ein Ausschnitt meiner A-Aufzeichnung.

Für diese Anleitung verwenden wir den Domänennamen linuxtechgeek.info, der auf die IP-Adresse 34.134.239.201 des Servers verweist.

Lassen Sie uns damit beginnen!

Schritt 1) Installieren Sie den Nginx-Webserver

Wir beginnen mit der Installation des Nginx-Webservers auf Rocky 8. Aber zuerst aktualisieren wir das Systempaket und aktualisieren die Repositories.

$ sudo dnf update

Die Aktualisierung kann eine Weile dauern, seien Sie also geduldig, bis sie abgeschlossen ist.

Sobald das Upgrade abgeschlossen ist, starten Sie das System einmal neu und installieren Sie dann den nginx-Webserver wie folgt:

$ sudo dnf install nginx

Standardmäßig startet nginx nicht automatisch. Gehen Sie also noch einen Schritt weiter und starten Sie den nginx-Dienst.

$ sudo systemctl start nginx

Aktivieren Sie als Nächstes den Webserver so, dass er beim Booten oder bei einem Neustart gestartet wird.

$ sudo systemctl enable nginx

Der Webserver sollte jetzt wie erwartet laufen und auf Port 80 lauschen. Sie können dies bestätigen, indem Sie den Befehl

ausführen
$ sudo systemctl status nginx

Sie können dies auch über einen Webbrowser überprüfen. Aber lassen Sie zuerst HTTP-Datenverkehr (sowohl HTTP als auch HTTPS) auf der Firewall zu, indem Sie die angezeigten Befehle ausführen

$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --add-service=https --permanent

Laden Sie dann die Firewall neu, um die Änderungen zu übernehmen.

$ sudo firewall-cmd --reload

Durchsuchen Sie dann die IP-Adresse oder den Domänennamen Ihres Servers

http://domain_name

Schritt 2)  Erstellen Sie einen Dokumentenstamm für die Domain

Wir sind mit der Installation des Webservers fertig. Der nächste Schritt besteht darin, ein Verzeichnis zu erstellen, das die Dateien der Domain aufnehmen wird. Wir erstellen das Verzeichnis der Domain im Pfad linuxtechgeek.info wie gezeigt mit dem Befehl mkdir

$ sudo mkdir -p /var/www/linuxtechgeek.info/html

Im Document Root der Domain finden Sie die Website-Dateien, einschließlich HTML, CSS, JavaScript und Bilder. Zu Demonstrationszwecken erstellen wir eine einfache index.html-Datei.

$ sudo vi /var/www/linuxtechgeek.info/html/index.html

Fügen Sie als Nächstes den folgenden Beispiel-HTML-Code ein und speichern Sie die Änderungen.

<!DOCTYPE html>
<html>
    <head>
        <title>Welcome to linuxtechgeek.info</title>
    </head>
    <body>
  <h1>Hey Guys! Our Nginx server block is working.</h1>
    </body>
</html>

Verwenden Sie als Nächstes den Befehl chown, um den Besitz des Verzeichnisses der Domain wie folgt festzulegen, um Probleme beim Abrufen von Berechtigungen zu vermeiden.

$ sudo chown -R nginx /var/www/linuxtechgeek.info/

Legen Sie als Nächstes die Berechtigungen so fest, dass Gruppen- und globale Benutzer Lese- und Ausführungsrechte für die Dateien der Domäne haben.

$ sudo chmod -R 755 /var/www/linuxtechgeek.info/

Wir sind damit fertig, den Dokumentenstamm für die Domäne zu konfigurieren und die richtigen Eigentumsrechte und Berechtigungen festzulegen. Fahren wir fort und konfigurieren die Serverblockdatei.

Schritt 3)  Nginx-Serverblock erstellen

Ein Nginx-Serverblock ist das Äquivalent zu einem virtuellen Apache-Host. Im Serverblock definieren Sie die Einstellungen der Site und teilen dem nginx-Webserver mit, wo er die Dateien der Domain finden soll.

Die Serverblock-Konfigurationsdatei wird im Verzeichnis /etc/nginx/conf.d erstellt. Wir werden unsere im selben Verzeichnis wie folgt erstellen.

$ sudo vi /etc/nginx/conf.d/linuxtechgeek.info.conf

Kopieren Sie die folgenden Zeilen und fügen Sie sie ein. Stellen Sie sicher, dass Sie den Domainnamen linuxtechgeek.info durch Ihre eigene Domain ersetzen.

server {
    listen 80;
    server_name linuxtechgeek.info www.linuxtechgeek.info;
    root /var/www/linuxtechgeek.info/html;
    index index.php index.html index.htm;
    access_log /var/log/nginx/linuxtechgeek.info.access.log;
    error_log /var/log/nginx/linuxtechgeek.info.error.log;
}

Speichern Sie die Änderungen und beenden Sie die Serverblockdatei.

Bestätigen Sie dann, dass alle Nginx-Konfigurationen in Ordnung sind. Wenn alles in Ordnung ist, sollten Sie die Ausgabe angezeigt bekommen.

$ sudo nginx -t

Damit Nginx alle Änderungen erkennt, einschließlich des Dokumentenstammverzeichnisses der Domain und der Serverblockdatei, starten Sie den Webserver neu.

$ sudo systemctl restart nginx

Bestätigen Sie dann den Laufstatus von Nginx.

$ sudo systemctl status nginx

Setzen Sie als Nächstes SELinux mit dem folgenden Befehl in den zulässigen Modus:

$ sudo setenforce permissive

Führen Sie den folgenden Befehl aus, um zu bestätigen, dass der zulässige Modus eingestellt ist:

$ sudo getenforce

Führen Sie den folgenden Befehl sed aus, um den Selinux-Modus dauerhaft als permissiv festzulegen.

$ sudo sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/sysconfig/selinux

Um zu bestätigen, dass die Serverblockdatei korrekt konfiguriert wurde, suchen Sie noch einmal nach Ihrem Domainnamen.

http://domain_name

Sie sollten eine positive Bestätigung erhalten, wie unten gezeigt.

Schritt 4) Certbot installieren

Der einzige verbleibende Schritt besteht darin, Let’s Encrypt zu installieren und den Nginx-Webserver zu sichern. Um dies zu erreichen, müssen wir jedoch certbot installieren. Certbot wurde in Python geschrieben und von der Electronic Frontier Foundation entwickelt und ist ein voll ausgestatteter Client für die Let’s Encrypt CA. Es wird auf dem Webserver ausgeführt und ermöglicht es Ihnen, mit einem einzigen Befehl automatisch ein SSL-Zertifikat für Ihren Webserver einzurichten.

Installieren Sie zuerst das EPEL-Repository, das zusätzliche und qualitativ hochwertige Pakete für RHEL-basierte Distributionen bereitstellt.

$ sudo dnf install -y epel-release

Installieren Sie nach der Installation certbot und das certbot-Modul für Nginx.

$ sudo dnf install certbot python3-certbot-nginx

Dies installiert certbot, das certbot-Modul für den Nginx-Host anderer Pakete und Abhängigkeiten.

Schritt 4)  Installieren Sie das SSL/TLS-Zertifikat von Let’s Encrypt

Führen Sie abschließend den certbot-Client aus, um das SSL-Zertifikat zu installieren

$ sudo certbot --nginx

Dies führt Sie durch eine Reihe von Eingabeaufforderungen. Geben Sie zunächst die E-Mail-Adresse an, die von EFF verwendet wird, um Ihnen Verlängerungs- und Sicherheitsupdates zu senden. Akzeptieren Sie dann die Nutzungsbedingungen, indem Sie auf „Y“ drücken. Wenn Sie möchten, können Sie „Y“ drücken, damit EFF Ihnen regelmäßige Updates über ihre Bemühungen zur Sicherung des Internets, Nachrichten und Kampagnen zusendet. Wählen Sie abschließend die zu verschlüsselnden Domänennamen aus. In unserem Fall haben wir die „ENTER“-Taste gedrückt, um alle Domainnamen auszuwählen.

Certbot ruft das SSL/TLS-Zertifikat ab und stellt es für die angegebenen Domänennamen bereit. Dadurch wird das HTTPS-Protokoll für Ihre Domain aktiviert, wodurch der mit dem Webserver ausgetauschte Datenverkehr verschlüsselt wird.

Um zu bestätigen, dass HTTPS aktiviert wurde, gehen Sie zurück zu Ihrem Browser und laden Sie ihn neu. Dieses Mal sehen Sie ein Vorhängeschloss-Symbol in der URL-Leiste – ein Hinweis darauf, dass die Website verschlüsselt ist.

Klicken Sie auf das Symbol und wählen Sie dann „Zertifikat“.

Dadurch werden die bereitgestellten Zertifikatsdetails angezeigt

Außerdem können Sie den Status Ihres Webservers bei SSL Labs testen, einer Website, die eine gründliche Analyse eines Webservers über das Internet durchführt. Sie sollten wie gezeigt eine A-Bewertung erhalten.

Schritt 5) Verwaltung der SSL-Zertifikatserneuerung

Das Zertifikat von Let’s Encrypt ist 90 Tage gültig, Let’s encrypt empfiehlt jedoch, das Zertifikat alle 60 Tage zu erneuern. E-Mail-Benachrichtigungen werden Ihnen in den letzten 20 Tagen bis zum Ablauf gesendet, wobei die Häufigkeit in den letzten 10 Tagen steigt.

Sie können das Zertifikat wie folgt manuell erneuern.

$ sudo certbot renew

Glücklicherweise können Sie die Erneuerung automatisieren, indem Sie einen neuen Cron-Job hinzufügen. Öffnen Sie also die Crontab-Datei.

$ crontab -e

Und fügen Sie die angezeigte Zeile hinzu. Speichern Sie die Änderungen und beenden Sie.

0 0 * * * /usr/bin/certbot renew > /dev/null 2>&1

Das ist alles. Vielen Dank, dass Sie so weit gekommen sind. Wir haben gezeigt, wie Sie das SSL-Zertifikat von Let’s Encrypt für Nginx auf Rocky Linux 8 installieren können.

Auch lesen :So richten Sie hochverfügbares NGINX mit KeepAlived unter Linux ein


Rocky Linux
  1. So installieren Sie MariaDB 10.6 auf Rocky Linux 8

  2. So installieren Sie Docker unter Rocky Linux 8

  3. So installieren Sie Cockpit unter Rocky Linux 8

  4. So installieren Sie Varnish 7 für Nginx unter Rocky Linux 8

  5. So installieren Sie MariaDB unter Rocky Linux 8

So installieren Sie Nginx mit Let’s Encrypt SSL unter Ubuntu 20.04 LTS

So installieren Sie Nginx unter Rocky Linux 8

So installieren Sie PostgreSQL unter Rocky Linux 8

So installieren Sie Cacti unter Rocky Linux 8

So installieren Sie Joomla auf Rocky Linux 8

So installieren Sie Fail2ban unter Rocky Linux 8