Wie man einen virtuellen Apache-Host unter FreeBSD einrichtet
Virtual Host ist ein Begriff für das Hosten und Betreiben mehrerer Websites, wie z.B. „site1.co“, „site2.co“ und „site3.co“, auf einem einzigen Node-Server. Auf dem Apache-Webserver können wir „namensbasierte“ virtuelle Hosts und „IP-basierte“ virtuelle Hosts erstellen.
Mit namensbasierten virtuellen Hosts können mehrere Websites mit einer einzigen IP-Adresse auf verschiedenen Domainnamen erstellt werden. Bei den IP-basierten virtuellen Hosts können wir für jede Website eine IP-Adresse zuweisen. Und das alles auf einem einzigen Server.
In diesem Lernprogramm zeigen wir dir, wie du einen „namensbasierten“ virtuellen Host auf dem FAMP (FreeBSD, Apache, MySQL/MariaDB und PHP) Stack einrichtest. Wir zeigen dir, wie du einen Apache-Webserver sowohl für das HTTP-Protokoll als auch für HTTPS mit aktiviertem SSL auf FreeBSD 12.0 einrichtest.
Voraussetzungen:
Für diese Anleitung musst du den FAMP-Stack auf deinem FreeBSD-System installiert haben. Du kannst auch den folgenden Link benutzen, um den FAMP Stack auf FreeBSD 12.0 einzurichten.
FAMP Stack unter FreeBSD 12.0 installieren
Was wir tun werden:
- Apache Virtual Host Verzeichnis initialisieren
- Einen einfachen virtuellen Apache-Host erstellen
- Apache Virtual Host mit aktiviertem SSL erstellen
Schritt 1 – Initialisierung des Apache Virtual Host Verzeichnisses
Zunächst legen wir das Verzeichnis für den virtuellen Host fest, in dem alle Konfigurationen des virtuellen Hosts gespeichert werden.
Gehe zum Apache-Konfigurationsverzeichnis „/usr/local/etc/apache24“ und erstelle ein neues Verzeichnis namens „vhost“.
cd /usr/local/etc/apache24 mkdir -p vhost
Danach bearbeitest du die Konfigurationsdatei „httpd.conf“ mit dem Editor vim.
vim httpd.conf
Füge die unten stehende Konfiguration am Ende der Zeile ein.
Include etc/apache24/vhost/*.conf
Speichere und schließe.
Jetzt werden alle Konfigurationsdateien ‚.conf‘ im ‚vhost‘-Verzeichnis vom Apache-Webserver geladen und wir sind bereit, einen neuen virtuellen Host zum FAMP-Stack hinzuzufügen.
Schritt 2 – Virtuellen Apache-Host erstellen
In diesem Schritt erstellen wir einen einfachen virtuellen Apache-Host für den Domainnamen „vhost1.hakase-labs.io“. Der virtuelle Host hat ein Dokument-Root-Verzeichnis „/usr/local/www/vhost1“ und verfügt über spezielle Log-Dateien für Zugriffs- und Fehlerprotokolle.
Bevor wir die Konfiguration des virtuellen Apache-Hosts erstellen, legen wir das Web-Root-Verzeichnis an und erstellen die Datei index.html.
Erstelle ein neues Dokumentenstammverzeichnis für die Domain „vhost1.hakase-labs.io“ und gehe in dieses hinein.
mkdir -p /usr/local/www/vhost1 cd /usr/local/www/vhost1
Danach erstellst du die Datei index.html mit dem Editor vim.
vim index.html
Füge das HTML-Skript unten ein.
<h1>VHOST1.HAKASE-LABS.IO</h1>
Speichere und schließe.
Als Nächstes gehst du in das Verzeichnis „/usr/local/etc/apache24/vhost/“ und erstellst die Datei für den virtuellen Host mit dem Namen „vhost1.hakase-labs.conf“.
cd /usr/local/etc/apache24/vhost/ vim vhost1.hakase-labs.conf
Füge die folgende Konfiguration ein.
<VirtualHost *:80> ServerAdmin admin@hakase-labs.io ServerName vhost1.hakase-labs.io ServerAlias www.vhost1.hakase-labs.io DocumentRoot "/usr/local/www/vhost1" ErrorLog "/var/log/vhost1.hakase-labs.io-error_log" CustomLog "/var/log/vhost1.hakase-labs.io-access_log" common <Directory /usr/local/www/vhost1> Order allow,deny Allow from all Require all granted </Directory> </VirtualHost>
Speichere und beende.
Teste nun die Apache-Konfiguration und stelle sicher, dass kein Fehler vorliegt, dann starte den Apache-Dienst neu.
apachectl configtest service apache24 restart
Du wirst das folgende Ergebnis erhalten.
Damit ist der virtuelle Apache-Host für den Domainnamen „vhost1.hakase-labs.io“ erstellt und geladen worden. Jetzt kannst du den Domainnamen über deinen Webbrowser aufrufen.
Öffne deinen Webbrowser und gib den Domainnamen „vhost1.hakase-labs.io“ in die Adressleiste ein.
http://vhost1.hakase-labs.io/
Du erhältst dann die unten abgebildete Index-Seite.
Damit ist der grundlegende virtuelle Apache-Host des FAMP-Stacks für den Domainnamen „vhost1.hakase-labs.io“ erstellt. Im nächsten Schritt werden wir den virtuellen Apache-Host mit aktiviertem SSL einrichten.
Schritt 3 – Virtuellen Apache-Host mit aktiviertem SSL einrichten
In diesem Schritt richten wir den virtuellen Apache-Host mit aktiviertem SSL ein. Dazu musst du „mod_ssl“ und „mod_rewrite“ aktivieren, SSL-Zertifikate erzeugen und die grundlegende SSL-Konfiguration erstellen.
Gehe nun in das Verzeichnis „/usr/local/etc/apache24/“ und bearbeite die Datei „httpd.conf“.
cd /usr/local/etc/apache24/ vim httpd.conf
Entferne die Kommentare in den „LoadModule“-Zeilen für „mod_ssl“ und „mod_rewrite“.
LoadModule ssl_module libexec/apache24/mod_ssl.so LoadModule rewrite_module libexec/apache24/mod_rewrite.so
Speichern und schließen.
Jetzt müssen wir eine neue SSL-Konfiguration „ssl.conf“ unter dem Verzeichnis „Includes“ erstellen.
vim Includes/ssl.conf
Füge die SSL-Konfiguration unten ein.
Listen 443 SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProxyCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLHonorCipherOrder on SSLCompression off SSLProtocol ALL -SSLv2 -SSLv3 SSLProxyProtocol ALL -SSLv2 -SSLv3 SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1:prime256v1
Speichere und schließe.
Danach erstellst du ein neues Web-Root-Verzeichnis „/usr/local/www/vhost2“ für die zweite virtuelle Host-Domain „vhost2.hakase-labs.io“ und gehst dort hinein.
mkdir -p /usr/local/www/vhost2 cd /usr/local/www/vhost2
Erstelle die Datei index.html mit dem Editor vim.
vim index.html
Füge das HTML-Skript unten ein.
<h1>VHOST2.HAKASE-LABS.IO</h1>
Speichere und schließe.
Als Nächstes gehst du in das Verzeichnis „/usr/local/etc/apache24/vhost/“ und erstellst eine neue Konfiguration für den virtuellen Host „vhost2.hakase-labs.conf“.
cd /usr/local/etc/apache24/vhost/ vim vhost2.hakase-labs.conf
Ändere den SSL-Pfad mit deinen eigenen Zertifikaten und füge sie ein.
# Automatic Redirect <VirtualHost *:80> ServerName vhost2.hakase-labs.io DocumentRoot "/usr/local/www/vhost2" Redirect permanent / https://vhost2.hakase-labs.io </VirtualHost> # HTTPS Config <VirtualHost *:443> SSLEngine On SSLCertificateFile /usr/local/etc/ssl/fullchain.pem SSLCertificateKeyFile /usr/local/etc/ssl/privkey.pem ServerAdmin admin@hakase-labs.io DocumentRoot "/usr/local/www/vhost2" ServerName vhost2.hakase-labs.io ServerAlias www.vhost2.hakase-labs.io ErrorLog "/var/log/vhost2.hakase-labs.io-error_log" CustomLog "/var/log/vhost2.hakase-labs.io-access_log" common <Directory /usr/local/www/vhost2> Order allow,deny Allow from all Require all granted </Directory> </VirtualHost>
Speichere und beende.
Teste die Apache-Konfiguration und vergewissere dich, dass kein Fehler auftritt, dann starte den Apache-Dienst neu.
apachectl configtest service apache24 restart
Der neue virtuelle Apache-Host mit SSL wurde vom Apache-Dienst geladen.
Öffne nun deinen Webbrowser und gib den Domainnamen „vhost2.hakase-labs.io“ in die Adressleiste ein.
http://vhost2.hakase-labs.io/
Du wirst auf eine sichere HTTPS-Verbindung umgeleitet und bekommst die unten abgebildete Index-Seite angezeigt.
Damit ist die neue Konfiguration des virtuellen Apache-Hosts mit SSL erfolgreich abgeschlossen.