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.

Referenz

Das könnte dich auch interessieren …