Installieren Sie Apache auf Ubuntu 18.04 Bionic Beaver Linux
- 3878
- 721
- Madleen Vater
Zielsetzung
Erfahren Sie, wie Apache auf Ubuntu 18 installieren.04, So konfigurieren Sie virtuelle Hosts, richten Sie die Firewall ein und verwenden Sie SSL -Zertifikate für eine sichere Verbindung
Anforderungen
- Wurzelberechtigungen
Konventionen
- # - Erfordert, dass gegebene Linux -Befehle entweder mit Root -Berechtigungen ausgeführt werden müssen
direkt als Stammbenutzer oder durch Verwendung vonsudo
Befehl - $ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können
Einführung
Der Apache -Webserver benötigt keine großen Präsentationen: Open Source -Software, die von der Apache Foundation veröffentlicht wurde, ist einer der am häufigsten verwendeten Webserver der Welt. In diesem Tutorial werden wir sehen, wie es installiert wird, die Firewall -Konfiguration anpassen, um HTTP- und HTTPS -Verkehr zu ermöglichen, und virtuelle Hosts auf Ubuntu 18 einrichten.04.
Installation
Installieren des Apache -Webservers auf Ubuntu 18.04 Bionic Biber ist ein wirklich einfacher Prozess:
$ sudo APT-Get Update && apt-Get Installieren Sie Apache2
Ubuntu -Installationsskripte kümmern sich um das Starten und Aktivieren des Apache2
Service am Boot.
Firewall -Setup
Um auf den von Apache bedienten Standardinhalt zuzugreifen, müssen wir auf dem selben Computer, auf dem der Server ausgeführt wird Lokalhost
in der Adressleiste. Wenn alles korrekt eingerichtet ist, sollte uns eine Seite mit dem „It funktioniert) begrüßen!" Nachricht:
Wenn eine Firewall in unserem System aktiviert ist (wie es sollte), müssen wir den Inhalt außerhalb unseres Computers zugänglich machen, wir müssen eingehender Verkehr am Port zulassen 80
. Der ausführende Befehl hängt vom in der Verwendung von Firewall -Manager ab. Zum Beispiel bei der Verwendung UFW
(Ubuntus Standard), wir müssen ausführen:
$ sudo ufw erlauben http
In ähnlicher Weise, wenn es verwendet wird Firewall
, Wir können rennen:
$ sudo firewall-cmd --permanent --add-service = http && firewall-cmd--Reload
Beachten Sie, dass der obige Befehl seine Auswirkungen auf die Standard -Firewall -Zone hat. Wenn wir mit einem anderen arbeiten wollen, müssen wir es mit dem angeben --Zone
Möglichkeit.
Konfigurieren eines virtuellen Hosts
Der Apache -Webserver kann mehr als eine Website auf demselben Computer ausführen. Jeder Standort (ein virtueller Host in der Apache -Terminologie), der bedient werden sollte, muss eine eigene Konfiguration haben. Ein virtueller Host kann IP oder genannt werden.
In diesem Tutorial konzentrieren wir uns auf den zweiten Typ, da es am einfacher zu erstellen ist und nicht mehrere IP-Adressen benötigt (Namensbasierte virtuelle Hosts ermöglichen es vielen Websites, dieselbe Adresse zu teilen).
Der Standard -Virtual Host
Auf Ubuntu ist der Standard -Virtual Host in die definiert in die /etc/apache2/seites-verfügbar
Verzeichnis im Inneren der 000 Default.Conf
Datei. Schauen wir es uns an:
[… .] Serveradmin webmaster@localhost documentroot/var/www/html [… .] Fehlerlog $ apache_log_dir/fehler.Log CustomLog $ apache_log_dir/Access.log kombiniert [… .]
Kopieren Der Die Anweisung in Zeile 1 wird verwendet, um die von Apache für einen bestimmten virtuellen Host verwendeten Einstellungen zu gruppieren. Das erste, was wir darin definiert haben, ist das
*: 80
Anweisung. Dies zeigt die IP -Adresse und den Port an, der vom virtuellen Host verwendet wird.
Mehrere virtuelle Hosts können in derselben Datei definiert werden oder durch das Schema „Ein virtueller Host -Definition pro Datei“ befolgt werden. In beiden Fällen wird die erste Definition als Standard angesehen, wenn kein anderer virtueller Host von der Client -Anfrage übereinstimmt.
Der Serveradmin
Anweisung in Zeile 3Is optional und wird verwendet, um die Kontaktadresse anzugeben, die der Webserver bei Fehlermeldungen anzeigt. Normalerweise möchten wir eine gültige E -Mail -Adresse als Argument dieser Richtlinie angeben, da der Webserver verwendet wird Mailto:
Um den Administrator zu kontaktieren.
Dokument Root
In Zeile 4Is obligatorisch und für die virtuelle Hostkonfiguration unerlässlich. Das Argument für diese Anweisung muss ein gültiger Dateisystempfad sein. Das bereitgestellte Verzeichnis wird als Stammverzeichnis des virtuellen Hosts angesehen und darf keine Nachverfolgung enthalten. In diesem Fall ist es das Dokument -Root -Verzeichnis /var/www/html
. Wenn wir einen Blick auf seinen Inhalt werfen, sehen wir, dass es die enthält Index.html
Seite, die als Server -Begrüßungsseite verwendet wird, die wir zuvor gesehen haben.
Die letzten beiden Anweisungen in Zeile 8 - 9 in diesem virtuellenHost sind Fehlerprotokoll
Und CustomLog
. Durch die Verwendung des ersten setzen wir die Datei, auf die der Server die auftretenden Fehler protokolliert. Die zweite wird stattdessen verwendet, um die an den Server gesendeten Anforderungen im angegebenen Format zu protokollieren (Sie können diese als Referenz für ein ausführliches Wissen über Protokollformate verwenden).
Erstellen Sie einen neuen virtuellen Host
Wir haben gesehen, wie der Standard -VirtualHost definiert ist. Nehmen wir nun an, wir möchten eine andere Website mit unserem Webserver bedienen: Wir müssen einen neuen virtuellen Host definieren, um unser Ziel erreichen zu können.
Wie oben erwähnt, müssen virtuelle Hosts -Dateien in der definiert werden /etc/apache2/seites-verfügbar
Verzeichnis (zumindest in Debian-basierten Verteilungen): Deshalb werden wir unsere Datei dort erstellen. Bevor dies dies tun, möchten wir das Verzeichnis erstellen, das als unser verwendet werden soll Dokument Root
, und erstellen Sie eine grundlegende Seite, die angezeigt werden soll, wenn wir die Website erreichen:
$ sudo mkdir/var/www/Beispiel && echo "Willkommen zum Beispiel!">/var/www/Beispiel/Index.html
Wir können nun unseren virtuellen Host konfigurieren:
Documentroot/var/www/Beispiel sservername www.Beispiel.lokal
Dies ist die minimale Konfiguration, die zum Ausführen eines virtuellen Hosts erforderlich ist. Hier können wir eine neue Richtlinie sehen, Servername
: Dies definiert unseren virtuellen Host. Sparen wir diese Datei als Beispiel.Conf
. Um unseren virtuellenHost zu aktivieren, verwenden wir die a2ensit
Befehl: Alles in diesem Befehl erstellen Sie einen Symlink der Datei in die /etc/apache2/sites-fähig
Verzeichnis:
$ sudo a2ensit Beispiel.Conf
Danach müssen wir die Serverkonfiguration neu laden:
$ sudo systemctl laden apache2 neu laden2.Service
Wir haben unseren virtuellenHost definiert, aber da dies ein Test ist und wir keine haben DNS -Eintrag
damit verbunden, um zu überprüfen, ob die Konfiguration funktioniert /etc/hosts
Datei der Maschine, von der wir versuchen, die Website zu erreichen.
$ sudo echo "192.168.122.241 www.Beispiel.Lokale ">> /etc /hosts
Ohne diese Zeile kann (und ohne DNS -Eintrag) die Adresse des Servers mit dem Namen unseres virtuellenHosts und der direkten Verwendung des Server -IP den Standard -Virtual -Host „auslösen“.
Aus der Client -Maschine, wenn wir jetzt zu „www navigieren.Beispiel.Lokal “Wir sollten die minimale Seite sehen, die wir oben eingerichtet haben:
Beispiel VirtualHost IndexEinrichten von SSL
SSL, kurz für Sichern Sie die Steckdosen
Es ist die Technologie, mit der wir die an der Verbindung zwischen dem Client und dem Server verbundenen Daten verschlüsseln können. Wenn SSL -Zertifikate verwendet werden, https
(Hypertextübertragungsprotokoll sicher) Ersetzt HTTP in der URL.
SSL -Zertifikate werden von einer Zertifikatbehörde ausgestellt, die als vertrauenswürdige Dritte versichert, dass jemand wirklich derjenige ist, der behauptet, im Internet zu sein. SSL -Zertifikate können sehr teuer sein, es gibt jedoch zwei Hauptalternativen, um ein Zertifikat zu erhalten Lassen Sie uns verschlüsseln
.
Generieren Sie ein selbstsigniertes SSL-Zertifikat
Obwohl es keine schwierige Aufgabe ist, ein selbstsigniertes Zertifikat zu generieren, kann es nicht nützlich sein, wenn Sie nur Verschlüsselung erreichen möchten, aber in Kontexten, in denen das Zertifikat selbst von einem vertrauenswürdigen Dritten unterzeichnet werden muss, ist es nicht verwendbar. Wir können ein selbstsigniertes Zertifikat erstellen, indem wir die verwenden OpenSSL
Dienstprogramm:
$ sudo opensensl req -x509 \ -days 365 \ -SHA256 \ -Newkey RSA: 2048 \ -nodes \ -Keyout Beispiel.TEY \ -out -Beispiel -Zert.Pem
Mal sehen, was dieser Befehl tut. Die erste Option, die wir begegnen, -x509
, Ändert das Verhalten des Befehls so, dass das IT ein selbstsigniertes Zertifikat anstelle einer Zertifikatanforderung generiert.
Mit -Tage
, Wir setzen die Gültigkeit in Tagen für das Zertifikat. Die nächste bereitgestellte Option ist -Newkey
: damit erstellen wir einen neuen Schlüssel, in diesem Fall eine RSA
Schlüssel mit der Größe von 2048 Bits. Für unseren Testfall möchten wir die private Schlüsseldatei nicht verschlüsseln, also haben wir verwendet -Knoten
. Wenn diese Option weggelassen wird, wird die Datei, in der der Schlüssel gespeichert wird.
Mit -Keyout
Und -aus
Wir geben die Datei an, um den generierten Schlüssel bzw. das Zertifikat zu schreiben. Beim Start des Befehls werden wir aufgefordert, einige Fragen zu beantworten, und dann wird der Schlüssel und das Zertifikat generiert.
Sie werden aufgefordert, Informationen einzugeben, die in Ihre Zertifikatanfrage aufgenommen werden. Was Sie eingeben möchten, ist der als als angesehene Name oder ein DN bezeichnet. Es gibt einige Felder, aber Sie können einige Felder leer lassen, es gibt einen Standardwert, wenn Sie eingeben. '.', Das Feld wird leer gelassen. ----- Ländername (2 Briefcode) [AU]: IT-Name oder Provinzname (Vollname) [SOND-STATE]: Lokalitätsname (z. B. Stadt) []: Milan-Organisation Name (z. :Schaden inc. Name der Organisationseinheit (z. B. Abschnitt) []: gebräuchlicher Name (e.G. Server FQDN oder Ihr Name) []: www.Beispiel.Lokale E -Mail -Adresse []:
Der nächste Schritt besteht darin, unseren generierten Schlüssel und unser Zertifikat in die Kopie zu /etc/ssl/privat
Und /etc/SSL/SSL-Certs
Verzeichnisse jeweils:
$ sudo MV Beispiel-Cert.PEM/etc/ssl/certs
Das Zertifikat ist öffentlich und benötigt daher keine besondere Erlaubnis. Nun der Schlüssel:
$ sudo mv Beispiel.Schlüssel/etc/ssl/privat
Es ist wichtig, dass wir die Schlüsseldateiberechtigungen anpassen. Wenn wir das untersuchen /etc/ssl/privat
Ordner können wir sehen, dass er dem gehört Wurzel
Benutzer und der SSL-Cert
Gruppe, und es hat 710
Als Berechtigungen, was bedeutet, dass der Eigentümer zwar vollständige Berechtigungen hat, kann der Gruppenbesitzer jedoch nur darauf zugreifen und seinen Inhalt auflisten und für andere keine Erlaubnis zulässig ist:
$ ls -ld/etc/ssl/private drwx--x --- 2 root ssl-cert 4096 16. März 11:57/etc/ssl/privat
Ändern wir unsere wichtigsten Dateiberechtigungen entsprechend, wobei dem Eigentümer die Berechtigungen und das Schreiben von Berechtigungen und schreibgeschützte Berechtigungen für die Gruppe erhalten:
$ sudo chown root: SSL-Cert/etc/ssl/privat/Beispiel.Schlüssel $ sudo chmod 640/etc/ssl/privat/Beispiel.Taste
Um unser Zertifikat zu verwenden, müssen wir jetzt das SSL Apache -Modul aktivieren. Wir tun es, indem wir die verwenden A2enmod
Befehl:
$ sudo a2enmod ssl
Wir sind fast da. Jetzt ist es an der Zeit, unseren virtuellen Host zu ändern und auf diese Weise festzulegen:
Documentroot/var/www/Beispiel sservername www.Beispiel.Lokal # SSL Engine SSlengine auf SSLCertificateFile/etc/SSL/Certs/Beispiel-Cert aktivieren.PEM SSLCertificateKeyFile/etc/ssl/privat/Beispiel.Taste
Kopieren Der Hafen 443
In Zeile 1IS Der Port, der für HTTPS verwendet wird (anstelle von Port 80, der für HTTP verwendet wird). Wir haben auch das hinzugefügt Sslengine on
Anweisung in Zeile 6, die ziemlich selbsterklärend ist.
Schließlich in Zeile 8 - 9 haben wir die Pfade für unser Zertifikat- und Schlüsseldateien angegeben, indem wir die SslcertificateFile
Und SslcertificateKeyFile
Anweisungen.
Folgen Sie nun den Instuktionen, um Firewall -Anschlüsse zu öffnen, die zu Beginn des Tutorials verwendet werden, diesmal jedoch, um das zuzulassen https
Service:
$ sudo ufw erlauben https
Schließlich laden Sie die Apache -Konfiguration neu:
$ sudo systemctl laden apache2 neu laden2
Alles erledigt. Wenn vom Kunden nun navigieren, navigieren wir nun zu https: // www.Beispiel.lokal
Adresse, wir sollten sehen, dass der Webserver uns darauf aufmerksam macht, dass das gebrauchte Zertifikat nicht sicher ist (da es selbstvertrauen ist). Dies ist jedoch das Zeichen, dass unser Setup funktioniert und der Datenverkehr zwischen dem Client und dem Server verschlüsselt wird (Sie müssen eine Ausnahme für das Zertifikat hinzufügen, um es zu verwenden).
Einrichten lassen uns verschlüsseln
Die Alternative zu kommerziellen und selbstsignierten Zertifikaten wird durch "Let's Encrypt" dargestellt. Lassen Sie uns eine kostenlose, automatisierte und offene Zertifikatsbehörde für Verschlüsseln. Sein Ziel ist es, automatisch ein vom Browser vertrauenswürdiger Zertifikat ohne menschliche Intervention zu erhalten.
Dies kann durch die Verwendung der erreicht werden GIPFEL
Protokoll und a Zertifikatverwaltungsagent
das läuft auf dem Server.
Um ein Zertifikat zu erhalten, müssen wir nachweisen, dass wir die Kontrolle über die Domäne haben, die wir für das Zertifikat verwenden möchten. Wenn wir keinen Shell -Zugriff auf dem Server haben, sollten wir uns an unseren Dienstanbieter wenden, um uns in unserem Namen zu aktivieren, aber wahrscheinlich befindet sich im Service -Konfigurationspanel einen speziellen Abschnitt.
Wenn wir stattdessen Shell -Zugriff auf den fraglichen Server haben, müssen wir zunächst die installieren certbot
ACME -Client. Installieren Sie Certbot auf Ubuntu 18.04 Es ist nur eine Frage des Laufens:
$ sudo APT-Get-Update && apt-Get Installieren Sie Certbot Python-CertBot-Apache
Das CertBot -Paket ist mit einem ausgestattet Systemd -Timer
Einheit, die zweimal täglich Certbot ausführt, um das Zertifikat auf dem neuesten Stand zu halten. Ein Zertifikat zu erhalten ist recht einfach:
$ sudo certbot --apache -m -d
Damit dies funktioniert. Certbot fordert Sie auf einige Fragen zur Optimierung der Konfiguration auf, und wenn alles gut geht, sollte das Zertifikat und der Schlüssel in die gespeichert werden /etc/letSencrypt/live/
Verzeichnis. Schneiden Sie einfach Ihre virtuelle Host -Datei an, um auf diese zu verweisen, und Sie sind fertig!
Verwandte Linux -Tutorials:
- Dinge zu installieren auf Ubuntu 20.04
- Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
- Installieren Sie Arch Linux in VMware Workstation
- Ubuntu 20.04: WordPress mit Nginx -Installation
- Dinge zu installieren auf Ubuntu 22.04
- Aktivieren/deaktivieren Sie die Firewall auf Manjaro Linux
- Dinge zu tun nach der Installation Ubuntu 22.04 Jammy Quallen…
- Ubuntu 20.04 WordPress mit Apache -Installation
- Setup FTP Server unter Linux einrichten
- So richten Sie VSFTPD auf Debian ein
- « Installieren Sie Intellij auf Ubuntu 18.04 Bionic Beaver Linux
- Wie man Zeit auf Ubuntu 18 synchronisiert.04 Bionic Beaver Linux »