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