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

So sichern Sie den Apache-Webserver mit Let’s Encrypt auf RHEL 8

In einer Online-Welt, die ständig von Sicherheitsbedrohungen überschwemmt wird, sollte die Sicherung Ihres Webservers an erster Stelle stehen. Eine Möglichkeit, Ihren Webserver zu sichern, ist die Implementierung des HTTPS-Protokolls auf Ihrer Website mithilfe eines SSL/TLS-Zertifikats. Ein SSL/TLS-Zertifikat sichert nicht nur Ihre Website, indem es Informationen verschlüsselt, die zwischen dem Webserver und den Browsern der Benutzer ausgetauscht werden, sondern hilft auch beim Google-Ranking.

In diesem Leitfaden erfahren Sie, wie Sie den Apache (http)-Webserver mit Let’s Encrypt SSL/TLS auf RHEL 8 sichern.

Voraussetzungen

Folgendes benötigen Sie, bevor Sie fortfahren:

  • Eine Instanz des RHEL 8-Servers mit einem konfigurierten sudo-Benutzer.
  • Ein vollständig qualifizierter Domänenname (FQDN), der auf die öffentliche IP-Adresse Ihres Servers verweist. In diesem Handbuch verwenden wir den Domänennamen linuxtechgeek.info.

Schritt 1) ​​Apache auf RHEL 8 installieren

Der erste Schritt besteht darin, den Apache-Webserver zu installieren. Da Apache bereits im AppStream-Repository von Red Hat vorhanden ist, können Sie es mit dem DNF-Paketmanager wie folgt installieren.

$ sudo dnf install -y httpd

Starten Sie nach der Installation den Apache-Webserver und aktivieren Sie ihn so, dass er beim Booten gestartet wird.

$ sudo systemctl start httpd
$ sudo systemctl enable httpd

Um zu überprüfen, ob Apache ausgeführt wird, führen Sie den folgenden Befehl aus:

$ sudo systemctl status httpd

Hinweis:Falls die Firewall ausgeführt wird, lassen Sie die folgenden Apache-Ports in der Firewall zu, führen Sie sie aus

$ sudo firewall-cmd --add-port=80/tcp --permanent
$ sudo firewall-cmd --add-port=443/tcp –permanent
$ sudo firewall-cmd --realod

Jetzt können Sie zu Ihrem Webbrowser wechseln und Ihre Domain in der URL-Leiste durchsuchen.

Schritt 2) Certbot installieren

Certbot ist ein benutzerfreundlicher Open-Source-Client, der von EFF (Electronic Frontier Foundation) verwaltet wird. Es ruft das TLS-Zertifikat von Lets Encrypt ab und stellt es auf dem Webserver bereit. Auf diese Weise entfällt der Aufwand und die Mühe der Implementierung des HTTPS-Protokolls mithilfe des TLS-Zertifikats.

Um Certbot und zugehörige Pakete zu installieren, aktivieren Sie zuerst EPEL (Extra Packages for Enterprise Linux).

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y

Als nächstes installieren Sie certbot und das mod_ssl-Paket wie folgt.

$ sudo dnf install certbot python3-certbot-apache mod_ssl

Schritt 3) Erstellen Sie eine virtuelle Apache-Hostdatei

Virtuelle Hosts ermöglichen es, mehrere Domains auf einem einzigen Webserver zu hosten.

Der erste Schritt besteht darin, ein Verzeichnis innerhalb des Dokumentstammverzeichnisses zu erstellen, in dem alle Website-Dateien abgelegt werden.

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

Legen Sie den Verzeichnisbesitz auf den Apache-Benutzer fest.

$ sudo chown -R apache:apache /var/www/linuxtechgeek.info/html

Achten Sie darauf, die Verzeichnisberechtigungen wie gezeigt einzustellen.

$ sudo chmod -R 755 /var/www

Wenn das Verzeichnis der Domain mit allen Eigentums- und Berechtigungen eingerichtet ist, erstellen wir eine virtuelle Hostdatei im Verzeichnis /etc/httpd/conf.d/.

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

Fügen Sie die folgenden Zeilen ein und seien Sie vorsichtig, wenn Sie Ihren eigenen Domänennamen verwenden.

<virtualhost *:80>
ServerName linuxtechgeek.info
ServerAlias www.linuxtechgeek.info
DocumentRoot /var/www/linuxtechgeek.info/html
ErrorLog /var/log/httpd/linuxtechgeek.info-error.log
CustomLog /var/log/httpd/linuxtechgeek.info-access.log combined
</virtualhost>

Speichern und beenden Sie die virtualhost-Datei.

Um zu testen, ob der virtuelle Host funktioniert, erstellen wir eine Beispiel-HTML-Datei im Website-Verzeichnis.

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

Fügen Sie den folgenden Beispielinhalt ein. Fühlen Sie sich frei, es nach Ihren Wünschen zu ändern.

<!DOCTYPE html>
<html>
     <body>
         <h1> Welcome to Linuxtechi virtualhost </h1>
      </body>
</html>

Speichern und beenden Sie die HTML-Datei. Um alle vorgenommenen Änderungen zu speichern, starten Sie den Apache-Webserver neu.

$ sudo systemctl restart httpd

Durchsuchen Sie Ihre Domain jetzt noch einmal, und dieses Mal sollten Sie anstelle der Standard-Willkommensseite von Apache die benutzerdefinierte HTML-Seite sehen, die Sie gerade konfiguriert haben. Dies ist ein Beweis dafür, dass die virtuelle Hostdatei funktioniert.

Schritt 4) Sichern Sie Apache mit dem Let’s Encrypt-Zertifikat

Der letzte Schritt besteht darin, das Let’s Encrypt-Zertifikat abzurufen und bereitzustellen. Führen Sie dazu einfach den folgenden Befehl aus:

$ sudo certbot --apache

Wenn der Befehl ausgeführt wird, führt Sie certbot durch eine Reihe von Eingabeaufforderungen. Sie werden nach Ihrer E-Mail-Adresse gefragt und müssen den Allgemeinen Geschäftsbedingungen zustimmen. Sie werden auch gefragt, ob Sie regelmäßig E-Mails über EFF-Neuigkeiten und Kampagnen zur digitalen Freiheit erhalten möchten.

Wenn Sie nach den Namen gefragt werden, für die HTTPS aktiviert werden soll, drücken Sie einfach die EINGABETASTE, um das Zertifikat auf alle bereitgestellten Domains anzuwenden. 

Certbot holt das TLS-Zertifikat von Let’s Encrypt und implementiert es auf Ihrem Webserver. Certbot druckt dann den Pfad, in dem das Zertifikat und der Schlüssel gespeichert wurden, sowie den Bereitstellungspfad des Zertifikats für Ihre Domänen.

Um zu überprüfen, ob Let’s encrypt erfolgreich bereitgestellt wurde, aktualisieren Sie Ihren Browser. Dieses Mal sehen Sie ein Vorhängeschloss-Symbol am Anfang der URL-Leiste, das anzeigt, dass die Website erfolgreich verschlüsselt wurde.

Sie können auf das Vorhängeschloss-Symbol klicken, um weitere Details zu erhalten

Zusätzlich können Sie einen SSL-Test auf ssl labs durchführen, um Ihr Zertifikat digital zu verifizieren. Wenn alles gut gelaufen ist, sollten Sie eine Eins erreichen.

Schritt 5) Lassen Sie uns die Zertifikatserneuerung verschlüsseln

Das Let’s Encrypt Zertifikat ist nur 90 Tage gültig. Einige Wochen vor Ablauf erhalten Sie in der Regel eine Benachrichtigung von EFF über den bevorstehenden Zertifikatsablauf und die Notwendigkeit, Ihr Zertifikat zu erneuern.

Sie können das Zertifikat manuell erneuern, indem Sie den folgenden Befehl ausführen:

$ sudo certbot renew

Führen Sie den folgenden Befehl aus, um die Zertifikatserneuerung zu simulieren:

$ sudo certbot renew --dry-run

Dies ahmt lediglich die eigentliche Zertifikatserneuerung nach und führt keine Aktion aus.

Um die Zertifikatserneuerung zu automatisieren, öffnen Sie die crontab-Datei

$crontab -e

Geben Sie unten den Cron-Job an, der jede Mitternacht ausgeführt wird.

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

Schlussfolgerung

Wir hoffen, dass Sie das Let’s Encrypt-Zertifikat jetzt nahtlos auf RHEL bereitstellen können, um den Apache-Webserver zu sichern.

Lesen Sie auch :So härten und sichern Sie den NGINX-Webserver unter Linux


Linux
  1. So konfigurieren Sie einen Apache-Webserver

  2. So sichern Sie Nginx mit SSL und Let’s Encrypt in FreeBSD

  3. So installieren Sie Let’s Encrypt auf Ubuntu 20.04 mit Apache

  4. So sichern Sie Ihren Ubuntu-Server mit der CSF-Firewall

  5. So installieren Sie Let’s Encrypt SSL mit Apache unter Debian 11

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

So sichern Sie Apache mit Let’s Encrypt SSL-Zertifikat auf CentOS 8

Wie man die Leistung von Webservern mit Apache Bench bewertet

So sichern Sie Apache mit Let’s Encrypt unter CentOS 8

So sichern Sie Nginx mit Let’s Encrypt unter Ubuntu 20.04

So sichern Sie Apache mit Let’s Encrypt unter Ubuntu 20.04