Apache Virtual Hosts unter Debian

Unter einem Apache-Dienst kann man mehrere Virtual Hosts einsetzen. Es wird angenommen, dass Apache2 bzw. LAMP installiert ist. Es ist schon ziemlich viel von Linux Seite für die Virtual Host vorbereitet, dennoch müssen wir selbst einige Konfigurationseinstellungen erstellen bzw. anpassen. Das ist aber nicht kompliziert. Der Aufbau der Konfigurationsdatei für ein Virtual Host ist von dem Bedarf der Web-Anwendung abhängig.

Wir möchten gerne eine Web-Anwendung innerhalb einer Firma einsetzen. In der Firm wird eine Domäne eingesetzt. Die Domäne heißt z.B. firma.lan
Die Domains mydomain1 und mydomain2 werden in dem DNS-Server eingetragen, damit werden die Domains mydomain1, mydomain1.firma.lan, mydomain2 und mydomain2.firma.lan von jedem Gerät in der Firma erreichbar.
 

Punkt
Als Beispiel werden wir hier zwei Virtual Hosts aufsetzen, mit geringeren Voraussetzungen. Für jeden Virtual Host wird eine Konfigurationsdatei erstellt. Unter Debian werden die Dateien im Ordner /etc/apache2/sites-available gespeichert.

 

Die erste Datei nennen wir /etc/apache2/sites-available/mydomain1.firma.lan.conf
 

<VirtualHost  *:80>
  ServerAdmin webmaster@mydomain1.firma.lan
  DocumentRoot /var/www/html/mydomain1
  ServerName mydomain1.firma.lan
  ServerAlias mydomain1
  ErrorLog /var/log/apache2/mydomain1.firma.lan_error_log
  CustomLog /var/log/apache2/mydomain1.firma.lan_access_log common
</VirtualHost>

 

Die zweite Datei nennen wir /etc/apache2/sites-available/mydomain2.firma.lan.conf
 

<VirtualHost  *:80>
  ServerAdmin webmaster@mydomain2.firma.lan
  DocumentRoot /var/www/html/mydomain2
  ServerName mydomain2.firma.lan
  ServerAlias mydomain2
  ErrorLog /var/log/apache2/mydomain2.firma.lan_error_log
  CustomLog /var/log/apache2/mydomain2.firma.lan_access_log common
</VirtualHost>
Punkt
Die benötigte Ordner werden erstellt

 

# mkdir /var/www/html/mydomain1
# mkdir /var/www/html/mydomain2
Punkt
Wir wechseln in Shell zuerst den Ordner und gehen ins /etc/apache2/sites-available
Die Konfigurationen in der angelegten Dateien mydomain1.firma.lan.conf und mydomain2.firma.lan.conf (Virtual Hosts) werden mit dem folgenden Befehl aktiviert.

 

# cd /etc/apache2/sites-available
# a2ensite mydomain1.firma.lan.conf
# a2ensite mydomain2.firma.lan.conf

 

Wir können, statt den Befehl a2ensite zu nutzen, einfach ein Link im Ordner /etc/apache2/sites-enabled erstellen. Den Befehl können wir im Ordner /etc/apache2/sites-available ausführen, hier ein Beispiel
ln -s /etc/apache2/sites-available/mydomain1.firma.lan.conf ../sites-enabled/

Punkt
Jetzt können wir den Apache-Dienst neu starten bzw. neu laden mit systemctl reload apache2

 

# systemctl restart apache2
Punkt
Jetzt können wir im Ordnern /var/www/html/mydomain1 z.B. eine index.html Dateien, mit diesem Inhalt, erstellen.

 

<html>
  <body>
     Ich bin mydamain1.firma.lan
  </body>
</html>

 

... und in diesem Ordner /var/www/html/mydomain2 z.B. eine index.html Dateien, mit diesem Inhalt.

 

<html>
  <body>
     Ich bin mydamain2.firma.lan
  </body>
</html>

Sichere Verbindung innerhalb der Firma nutzen (https://)

Punkt
Für wichtigen WEB-Anwendungen innerhalb einer Firma sollten wir auch eine sichere Verbindung nutzen, also https://
Um das zu realisieren, müssen wir Voraussetzungen erfüllen.
  • Das SSL-Modul müssen wir aktivieren.
  • Die Konfigurationsdatei der Virtual Host müssen wir anpassen.
  • Wir brauchen ein Zertifikat. Das Zertifikat können wir selbst erstellen und auch selbst bestätigen.
Punkt
Das SSL-Modul wird aktiviert.

# a2enmod ssl

 

Punkt
Die erste Virtaul Host Datei wird angepasst. Die Datei können wir entsprechend umbenennen, auf
z.B. /etc/apache2/sites-available/mydomain1.firma.lan-ssl.conf oder neu erstellen.
Wie man die Zertifikate erstellt und einsetzt, finden wir im Artikel SSL-Zertifikate

 

<VirtualHost  *:443>

  ServerAdmin webmaster@mydomain1.firma.lan
  DocumentRoot /var/www/html/mydomain1
  ServerName mydomain1.firma.lan
  ServerAlias mydomain1

  SSLEngine on
  SSLCertificateFile /etc/apache2/cert/mydomain1.firma.lan.crt
  SSLCertificateKeyFile /etc/apache2/cert/mydomain1.firma.lan.key

  ErrorLog /var/log/apache2/mydomain1.firma.lan_error_log
  CustomLog /var/log/apache2/mydomain1.firma.lan_access_log common
</VirtualHost>

 

Punkt
Die zweite Virtaul Host Datei wird angepasst. Die Datei können wir entsprechend umbenennen, auf
z.B. /etc/apache2/sites-available/mydomain2.firma.lan-ssl.conf oder neu erstellen.
Wie man die Zertifikate erstellt und einsetzt, finden wir im Artikel SSL-Zertifikate

 

<VirtualHost  *:443>

  ServerAdmin webmaster@mydomain2.firma.lan
  DocumentRoot /var/www/html/mydomain2
  ServerName mydomain2.firma.lan
  ServerAlias mydomain2

  SSLEngine on
  SSLCertificateFile /etc/apache2/cert/mydomain2.firma.lan.crt
  SSLCertificateKeyFile /etc/apache2/cert/mydomain2.firma.lan.key

  ErrorLog /var/log/apache2/mydomain2.firma.lan_error_log
  CustomLog /var/log/apache2/mydomain2.firma.lan_access_log common
</VirtualHost>

 

Punkt
Wir befinden sich im Ordner /etc/apache2/sites-available
Die VirtualHost mydomain1.firma.lan-ssl.conf und mydomain2.firma.lan-ssl.conf werden aktiviert.

 

# cd /etc/apache2/sites-available
# a2ensite mydomain1.firma.lan-ssl.conf
# a2ensite mydomain2.firma.lan-ssl.conf
Punkt
Erst, wenn die Zertifikate vorhanden sind, können wir Apache2 neu starten, sonst bekommen wir Fehlermeldung.
Die Zertifikate werden erstellt.