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

So installieren und konfigurieren Sie Apache mit Let’s Encrypt TLS/SSL unter Ubuntu 20.04

Apache , auch bekannt als Apache HTTP-Server, war in den letzten Jahrzehnten weltweit eine der am häufigsten verwendeten Webserver-Anwendungen. Es ist eine kostenlose Open-Source-Webanwendungssoftware, die von der Apache Software Foundation verwaltet wird . Apache bietet neben anderen beliebten Funktionen einige leistungsstarke Funktionen mit dynamisch ladbaren Modulen, einfacher Integration mit anderer Software und Handhabung statischer Dateien.

Im folgenden Tutorial erfahren Sie, wie Sie Apache Web Server unter Ubuntu 20.04 installieren.

Voraussetzungen

  • Empfohlenes Betriebssystem: Ubuntu 20.04 – optional (Ubuntu 21.04 und Linux Mint 20)
  • Benutzerkonto: Ein Benutzerkonto mit Sudo- oder Root-Zugriff.

Betriebssystem aktualisieren

Aktualisieren Sie zuerst Ihr Ubuntu Betriebssystem, um sicherzustellen, dass alle vorhandenen Pakete auf dem neuesten Stand sind:

sudo apt update && sudo apt upgrade -y

Root- oder Sudo-Zugriff

Standardmäßig hat das mit Ubuntu erstellte Konto den sudo-Status vergeben. Angenommen, Sie müssen zusätzlichen Konten sudo/root-Zugriff gewähren. In diesem Fall müssen Sie entweder Zugriff auf das Root-Passwort haben um den su-Befehl zu verwenden oder besuchen Sie unser Tutorial zum Hinzufügen eines Benutzers zu Sudoern unter Ubuntu.

Methode 1. Installieren Sie Apache aus dem Ubuntu-Repository

Die erste Option zum Installieren von Apache besteht darin, das Standard-Ubuntu-Repository zu verwenden. Dies ist für die meisten Benutzer praktischer, da es sehr stabil und sicher ist.

Um Apache zu installieren, öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus:

sudo apt install apache2 -y

Überprüfen Sie als Nächstes, ob die Installation erfolgreich war, indem Sie die Build-Version von Apache überprüfen:

sudo apache2 --version

Beispielausgabe:

Server version: Apache/2.4.51

Überprüfen Sie mit dem folgendensystemctl, ob Apache2 ordnungsgemäß ausgeführt wird Befehl:

systemctl status apache2

Beispielausgabe, wenn alles in Ordnung ist:

Methode 2. Installieren Sie den neuesten Apache von Ondřej Surý PPA

Standardmäßig ist Apache in den Software-Repositories von Ubuntu verfügbar , wodurch es einfach zu installieren ist. Wie die meisten Repositories auf Ubuntu LTS-Versionen kann es jedoch oft hinter dem aktuellen Stand zurückbleiben, nicht so sehr in Bezug auf Sicherheitsrisiken. Dennoch fehlen die neueren Funktionen und Verbesserungen.

Ubuntu wird empfohlen, die Version von Apache 2 von Ondřej Surý zu installieren , das aktuellste und vorgefertigte mit besonders häufig verwendeten Modulen.

Fügen Sie zuerst Ondřej Surý PPA für Ubuntu wie folgt hinzu:

sudo add-apt-repository ppa:ondrej/apache2 -y && sudo apt update

Jetzt können Sie das Apache 2-Paket mit dem folgenden Befehl installieren:

sudo apt install apache2

Die Installation installiert alle erforderlichen Abhängigkeiten.

Wenn Sie das PPA nicht verwenden möchten, können Sie das Hinzufügen überspringen und Apache 2 aus dem Ubuntu-Repository installieren.

Bestätigen Sie nach der Installation die Version, indem Sie den folgenden Befehl ausführen:

apache2 -v

Beispielausgabe:

Server version: Apache/2.4.51 (Ubuntu)

Beachten Sie, dass sich beide Repositories zum Zeitpunkt des Tutorials aufgrund eines DRINGENDEN CVE-Updates auf derselben Version befinden. Normalerweise ist Ondřej Surý PPA dem standardmäßigen Ubuntu 20.04 jederzeit voraus.

Überprüfen Sie mit dem folgendensystemctl, ob Apache2 ordnungsgemäß ausgeführt wird Befehl:

sudo systemctl status apache2

Beispielausgabe, wenn alles in Ordnung ist:

UFW-Firewall für Apache konfigurieren

Nach der Installation des Apache 2-Webservers müssen Sie die UFW-Regeln ändern um externen Zugriff auf die Standard-Webports zu ermöglichen. Glücklicherweise registriert sich Apache während der Installation selbst bei UFW, um einige Profile bereitzustellen, die verwendet werden können, um den Zugriff zu aktivieren oder zu deaktivieren, was die Konfiguration einfach und schnell macht.

Listen Sie zunächst die Anwendungsprofile auf, um die Apache-Profile anzuzeigen, die mit dem folgenden Befehl verfügbar sind:

sudo ufw app list

Beispielausgabe:

Available applications:
  Apache
  Apache Full
  Apache Secure

Aus der obigen Ausgabe haben Sie drei Profiloptionen zur Auswahl. Um es aufzuschlüsseln, Apache läuft auf Port 80 (HTTP), Apache Secure läuft auf Port 443 (HTTPS) und Apache Full ist eine Kombination aus beiden. Am gebräuchlichsten ist entweder Apache Full oder Apache Secure.

Da wir für das Tutorial kein SSL eingerichtet haben, aktivieren wir das (Apache-)Profil mit dem folgenden Befehl:

sudo ufw allow 'Apache'

Beispielausgabe:

Rule added
Rule added (v6)

Wie oben wurden die Regeln sowohl für IPV4 als auch für IPV6 hinzugefügt. Später können Sie dieses Profil deaktivieren und nur sicher aktivieren oder die Apache-Regel deaktivieren und stattdessen die vollständige Apache-Regel verwenden.

Verifizieren Sie den Apache-Webserver

Nachdem Sie die UFW-Firewall installiert und konfiguriert haben, können Sie testen, ob Apache 2 erreichbar ist und ordnungsgemäß funktioniert, indem Sie eine Seite anfordern.

Sie können auf die standardmäßige Apache-Zielseite zugreifen, um zu überprüfen, ob die Software über die IP-Adresse Ihres Servers korrekt ausgeführt wird. Um dies herauszufinden, wenn Sie es nicht wissen, verwenden Sie den folgenden Befehl:

hostname -I

Sie sollten als Beispiel die interne IP-Adresse zurückerhalten, auf der sich der Server befindet:

###Example Only###
192.168.50.15 

Sie erhalten möglicherweise 2 bis 3 Ergebnisse zurück. Probieren Sie jede aus, bis Sie die richtige IP-Adresse gefunden haben.

Wenn Sie Ihre öffentliche IP-Adresse (extern) benötigen, verwenden Sie stattdessen den folgenden Befehl:

curl -4 icanhazip.com

Möglicherweise müssen Sie das CURL-Paket installieren, falls es fehlt. Führen Sie dazu den folgenden Befehl aus:

sudo apt install curl -y

Sobald Sie die IP-Adresse Ihres Servers haben, öffnen Sie Ihren bevorzugten Internetbrowser und geben Sie Folgendes ein:

http://your_server_ip

Sie sollten die folgende Seite in Ihrem Internetbrowser erhalten:

Herzlichen Glückwunsch, Sie haben den Apache 2-Webserver installiert und arbeiten derzeit.

Der nächste Schritt besteht darin, virtuelle Hosts einzurichten.

Virtuelle Hosts für Apache erstellen und/oder konfigurieren

Mit dem Apache-Webserver können Sie virtuelle Hosts erstellen, um Konfigurationen für mehr als eine Domäne zu verwalten, die auf einem einzelnen Server ausgeführt werden. Wenn Sie zuvor Nginx verwendet haben, ist dies das Äquivalent zu Serverblöcken. Im folgenden Beispiel erstellt das Tutorial eine Domain example-domain.com, die Sie durch Ihren Domainnamen ersetzen.

Standardmäßig verfügt Apache unter Ubuntu 20.04 über einen standardmäßig aktivierten Serverblock, der so konfiguriert ist, dass Dokumente von /var/www/html bereitgestellt werden Verzeichnis. Wenn Sie eine Website betreiben, können Sie diesen Serverblock an Ihre Bedürfnisse anpassen. Wenn Sie jedoch mehrere Websites hosten, müssen Sie eine neue Verzeichnisstruktur für Ihre verschiedenen Domains erstellen.

Verzeichnisse erstellen und/oder konfigurieren

Verlassen Sie zunächst /var/www/html Verzeichnis intakt als Standardverzeichnis, erstellen Sie dann ein neues Verzeichnis, zum Beispiel-domain.com, wie unten:

sudo mkdir /var/www/example_domain

Der nächste Schritt besteht darin, den Besitz des Verzeichnisses mit der Umgebungsvariable $USER zuzuweisen:

sudo chown -R $USER:$USER /var/www/example_domain

Normalerweise sollten die Webroot-Berechtigungen korrekt eingestellt sein, und Sie können dies mit dem Befehl -ls l überprüfen :

-ls l /var/www/example_domain
ls -l /var/www/example_domain

Beispielausgabe:

drwxr-xr-x 2 joshua joshua 4096 Oct 10 11:46 example_domain

Wie Sie sehen können, haben wir die Erlaubnis von drwxr-xr-x, das entspricht chmod 755 . Wenn Sie diesen Berechtigungssatz nicht haben, führen Sie den folgenden Befehl aus:

sudo chmod -R 755 /var/www/example_domain

Erstellen Sie jetzt mit Ihrem bevorzugten Texteditor eine Beispielseite index.html. Das Tutorial verwendet Nano wie folgt:

sudo nano /var/www/example_domain/index.html

Kopieren Sie in der Datei den folgenden Code und fügen Sie ihn ein:

<html>
    <head>
        <title>Welcome to Website!</title>
    </head>
    <body>
        <h1>Success! The virtual host is working! You did not mess it up.</h1>
    </body>
</html>

Speichern Sie die Datei (STRG+O) , dann beenden (STRG+X) .

Virtuellen Host erstellen

Nun, da Sie eine Zielseite erstellt und die richtigen Eigentümer und Berechtigungen festgelegt haben. Sie können nun mit der Erstellung einer virtuellen Hostdatei fortfahren. Standardmäßig müssen sich alle virtuellen Hostdateien unter /etc/apache2/sites-available/ befinden Verzeichnis.

Verwenden Sie zunächst Ihren bevorzugten Texteditor, um eine Konfigurationsdatei zu erstellen, die sich unter /etc/apache2/sites-available/example_domain.conf befindet wie unten:

sudo nano /etc/apache2/sites-available/example_domain.conf

Kopieren Sie nun Folgendes und fügen Sie es in die Konfigurationsblockdatei ein. Beachten Sie, dass Sie Ihren ServerName, ServerAlias ersetzen müssen und Dokumentenstamm mit Ihrem eigenen:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName example_domain
    ServerAlias www.example_domain
    DocumentRoot /var/www/example_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Beachten Sie, dass Sie nicht vergessen, die erforderlichen Server-Direktiven in Ihre eigenen zu ändern.

Speichern Sie die Konfigurationsdatei mit (STRG+O) und mit (CTRL+X) beenden .

Virtuellen Host aktivieren

Nachdem Sie nun Ihre Konfigurationsdatei für den virtuellen Host bereit haben, ist es an der Zeit, sie zu aktivieren. Im Gegensatz zu Nginx, wo Sie mit dem Befehl ln -s einen Symlink erstellen würden, verwendet Apache bei Apache seine Tools, wie das folgende Tutorial zeigt:

Deaktivieren Sie zunächst die vorhandene standardmäßig installierte Serverblockdatei 000-default.conf mit dem a2dissite-Befehl:

sudo a2dissite 000-default.conf

Aktivieren Sie jetzt Ihre virtuelle Hostdatei mit der a2ensite Befehl:

sudo a2ensite example_domain.conf

Jetzt hat Apache, wie die meisten Webserver-Anwendungen, einen Probelauf Funktion. Bevor Sie live gehen, testen Sie Ihre Konfigurationsdatei mit dem folgenden Befehl:

sudo apache2ctl configtest

Wenn alles richtig funktioniert, sollte die Beispielausgabe so aussehen:

Syntax OK

Starten Sie nun den Apache-Webserver neu, um Ihren neuen virtuellen Host mit dem folgenden Befehl live zu schalten:

sudo systemctl restart apache2

Apache sollte derzeit die Zielseite bereitstellen, die Sie für Ihre neue Domain erstellt haben. Um dies zu testen, öffnen Sie Ihren Internetbrowser und geben Sie Ihren Domainnamen HTTP://example_domain ein wo Sie die folgende Zielseite erhalten sollten, die Sie in der Datei index.html erstellt haben:

Herzlichen Glückwunsch, Sie haben Ihren virtuellen Host erfolgreich erstellt und auf Ihrer Domain erfolgreich zum Laufen gebracht.

Apache mit Let’s Encrypt SSL Free Certificate sichern

Idealerweise möchten Sie Ihren Apache auf HTTPS mit einem SSL-Zertifikat ausführen . Verwenden Sie dazu am besten Let’s Encrypt eine kostenlose, automatisierte und offene Zertifizierungsstelle, die von der gemeinnützigen Internet Security Research Group (ISRG) betrieben wird .

Installieren Sie zuerst das certbot-Paket wie folgt:

sudo apt install python3-certbot-apache -y

Führen Sie nach der Installation den folgenden Befehl aus, um die Erstellung Ihres Zertifikats zu starten:

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d www.example.com

Dies ist das ideale Setup, das erzwungene HTTPS-301-Umleitungen, Strict-Transport-Security-Header und OCSP-Stapling umfasst. Passen Sie einfach E-Mail und Domainnamen an Ihre Anforderungen an.

Jetzt lautet Ihre URL https://www.example.com statt HTTP://www.example.com .

Beachten Sie, wenn Sie die alte HTTP-URL verwenden , wird automatisch auf HTTPS umgeleitet .

Verwalten des Apache-Dienstes

Nachdem Sie nun Apache erfolgreich auf Ihrem Server ausgeführt haben, lauten einige Management-Keynotes wie folgt.

Apache-Serverprotokolle

Apache-Serverprotokolle befinden sich im Verzeichnis /var/log/apache2/ mit access.log und error.log Dabei handelt es sich respektvoll um die angegebenen Standardzugriffs- und Fehlernamen. Dies kann in Zukunft in Ihrer virtuellen Host-Konfigurationsdatei in andere Namen geändert werden.

Apache-Befehle

Die folgenden Befehle, die Sie zweifellos in Ihrer täglichen Verwaltung verwenden werden, wenn Sie mit Apache arbeiten. Einige der häufigsten sind:

So stoppen Sie den Apache-Webserver:

sudo systemctl stop apache2

So starten Sie den Apache-Webserver:

sudo systemctl start apache2

So starten Sie den Apache-Webserver neu:

sudo systemctl restart apache2

Zum Neuladen des Apache-Webservers (Für kleinere Änderungen, die keinen Neustart erfordern) :

sudo systemctl reload apache2

So deaktivieren Sie Apache beim Serverstart:

sudo systemctl disable apache2

So starten Sie Apache beim Serverstart (wird bei der Installation automatisch aktiviert) :

sudo systemctl enable apache2

Apache aktualisieren

Um Apache in Zukunft zu aktualisieren, geschieht dies mit dem Befehl, mit dem Sie überprüft haben, ob Ihr System auf dem neuesten Stand ist. Beachten Sie, dass Sie immer Backups oder Images erstellen, wenn Sie einen Apache-Dienst haben, der kritische Dienste ausführt. Normalerweise ist ein Upgrade ziemlich sicher, aber manchmal können wie bei jedem Software-Upgrade Fehler auftreten.

Um Apache zu aktualisieren, verwenden Sie den folgenden Befehl:

sudo apt update

Wenn ein Apache-Upgrade verfügbar ist, verwenden Sie den Befehl:

sudo apt upgrade

Wie man Apache entfernt (deinstalliert)

Um Apache zu entfernen, wenn Sie es nicht mehr verwenden, können Sie dies mit dem folgenden Befehl tun:

sudo apt autoremove apache2 --purge

Dieser Befehl entfernt auch alle ungenutzten Abhängigkeiten, die mit der Installation geliefert wurden.


Ubuntu
  1. So installieren und konfigurieren Sie Nextcloud mit Apache unter Ubuntu 18.04

  2. So installieren und konfigurieren Sie ownCloud mit Apache unter Ubuntu 18.04

  3. So installieren und konfigurieren Sie einen FTP-Server (vsftpd) mit SSL/TLS unter Ubuntu 20.04

  4. So installieren Sie Let’s Encrypt SSL auf Ubuntu 18.04 mit Nginx

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

So installieren und konfigurieren Sie Apache (httpd) mit Let’s Encrypt TLS/SSL unter AlmaLinux 8

So installieren Sie Let’s Encrypt SSL mit Apache unter CentOS 7

So installieren Sie Let’s Encrypt SSL auf Ubuntu mit Apache

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

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

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