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.
Die erste Datei nennen wir /etc/apache2/sites-available/mydomain1.firma.lan.conf
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
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>
# mkdir /var/www/html/mydomain2
Die Konfigurationen in der angelegten Dateien mydomain1.firma.lan.conf und mydomain2.firma.lan.conf (Virtual Hosts) werden mit dem folgenden Befehl aktiviert.
# 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/
<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.
<body>
Ich bin mydamain2.firma.lan
</body>
</html>
Sichere Verbindung innerhalb der Firma nutzen (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.
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
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>
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
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>
Die VirtualHost mydomain1.firma.lan-ssl.conf und mydomain2.firma.lan-ssl.conf werden aktiviert.
# a2ensite mydomain1.firma.lan-ssl.conf
# a2ensite mydomain2.firma.lan-ssl.conf
Die Zertifikate werden erstellt.