Apache SSL und V-Host Konfiguration mit womodo

28. Oktober 2021

In der Regel arbeitet womodo zusammen mit einem vorgeschalteten Apache Webserver.

Apache nimmt dabei alle Anfragen entgegen und leitet sie per AJP-Connector an womodo zur Verarbeitung weiter. Apache ist dabei auch verantwortlich für das SSL-Handshake und muß deshalb die SSL-Zertifikate verwalten.

Nun überdecken sich teilweise Funktionen in Apache und womodo. Aus diesem Grund haben wir dieses Best-Practice Guide erstellt, in dem wir unsere empfohlene Standard-Konfiguration beschreiben.

Zunächst wird in Apache ein Default-V-Host erstellt, der alle HTTP-Anfragen über Port 80 direkt und ohne weitere Verarbeitung an womodo weiterleitet:

<VirtualHost *:80>
ProxyPass / ajp://localhost:8009/
</VirtualHost>

In dieser Konfiguration ist kein ServerName oder ServerAlias enthalten.

SSL-V-Host in Apache

Für jede Domain, die per SSL erreichbar sein soll, wird im Apache ein V-Host erstellt und die Zertifikats-Dateien referenziert::

<VirtualHost *:443>
ProxyPass / ajp://localhost:8009/
ServerName www.meine-domain.com
SSLEngine On
SSLCertificateFile ...
SSLCertificateKeyFile ...
SSLCACertificateFile ...
SSLProtocol ...
SSLCipherSuite ...
</VirtualHost>

Diese Konfiguration enthält nur dann ServerAliases, wenn das Zertifikat auch für diese Aliases gültig ist. Das ist in der Regel nicht der Fall. Server Aliases werden statt dessen in einem V-Host in womodo verwaltet. Wichtig dabei ist, daß der in Apache eingetragene ServerName exakt der gleiche ist, der im womodo V-Host verwendet wird.

Der Apache V-Host enthält auch keinen Eintrag für HTTP Port 80. Port 80 wird komplett über den Default-V-Host verarbeitet.

V-Host in womodo

v-host-womodo.png

Als "Host Name" wird exakt der Wert eingetragen, der im Apache V-Host als "ServerName" verwendet wurde.

Die Liste der Host-Aliase wird komplett in womodo gepflegt. Apache muß diese nicht kennen.

Auch die Umleitung auf HTTPS und die Umleitung auf den Default-Host übernimmt womodo (der Default-Host ist in der Regel der, der mit www. beginnt).

How it works

Im Browser wird http://meine-domain.com oder ein anderer Host-Alias aufgerufen. 

Diese Anfrage wird vom Apache Default-Host für Port 80 verarbeitet und per AJP direkt an womodo weitergeleitet.

Womodo findet seinen eingetragenen V-Host, weil meine-domain.com in der Host-Alias-Liste enthalten ist.

Die beiden Einstellungen "Always redirect to default host" und "Force https/SSL" sorgen dafür, daß womodo einen Redirect auf https://www.meine-domain.com erzeugt.

Der Browser sendet daraufhin eine neue Anfrage an diese URL.

Nun greift der Apache V-Host für www.meine-domain.com, führt das SSL-Handshake aus und leitet die Anfrage per AJP weiter an womodo. Womodo kann nun die weiteren Einstellungen seines V-Hosts auswerten und z. B. die konfigurierte Default-App anzeigen und/oder den weiteren Pfad auswerten.

Aufgabenteilung

Die hier beschriebene Aufgabenteilung sorgt dafür, daß die Apache Konfiguration so einfach wie möglich ist und nur die absolut notwendigen Elemente enthält.

Womodo übernimmt die Weiterleitung an den Default-Host und auf das HTTPS Protokoll.

Die alternativen Domains, über die die Website erreichbar sein soll, werden komplett in womodo gepflegt.