Der weclappON Docker-Container stellt kein SSL/TLS bereit, es ist immer nur Port 8080 ohne TLS verfügbar. Natürlich sollte für den produktiven Betrieb immer https verwendet werden, vor allem wenn der Server aus dem Internet erreichbar sein soll. Der vorgesehene Weg dafür ist, dass ein Reverse Proxy davor gesetzt wird, der die TLS-Verbindungen annimmt und dann per http an den weclappON Server weiterleitet.
Für den Reverse Proxy gibt es verschieden Möglichkeiten, siehe z.B. hier.
Für den Einsatz von HAProxy können wir dir eine angepasste Docker-Version von weclapp On anbieten, welche eine entsprechende Konfiguration enthält. Diese kannst du unter folgendem Link herunterladen. Die konkreten Voraussetzungen dafür wären:
- Der Server auf dem Docker und weclappON und dann auch HAProxy laufen sollte extern erreichbar sein mit einem öffentlichen Hostnamen, z.B. weclapp.meinefirma.de.
- Für diesen Hostnamen muss ein gültiges SSL Zertifikat vorhanden sein.
- Das Zertifikatsbundle legst du unter /opt/weclapp-data/certificate-bundle.pem ab.
HAProxy erwartet das Zertifikat und den Private Key und eventuell benötigte Zwischenzertifikate alle zusammen in einer Datei: am besten zuerst das Zertifikat, dann die Zwischenzertifikate (falls vorhanden/nötig) und am Ende der Private Key. Das Bundle kann z.B. mit Hilfe eines Texteditors aus den einzelnen Dateien erzeugt werden (die einzelnen Dateien müssen einfach konkateniert werden). Das sollte dann z.B. so aussehen:—–BEGIN CERTIFICATE—–
… certificate base64 …
—–END CERTIFICATE———-BEGIN CERTIFICATE—–
… intermediate certificate base64 …
—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–
… intermediate certificate base64 …
—–END CERTIFICATE———-BEGIN PRIVATE KEY—–
… private key base64 …
—–END PRIVATE KEY—–
Alternativ ist es möglich, einen eigenen Reverse Proxy aufzusetzen oder einen bereits vorhandenen zu verwenden; der kann dann auch auf einem anderen Server laufen.
Hier ein paar Hinweise zur Konfiguration des Reverse Proxies:
- Wenn https Requests durchgereicht werden, dann sollte der Header X-Forwarded-Proto auf “https” gesetzt werden. Das ist wichtig, damit in Redirects, die von weclapp generiert werden, das korrekte Protokoll verwendet werden kann.
- Der Host Header des Requests sollte unverändert durchgereicht werden. Dies ist ebenfalls wichtig für korrekte Redirects und Ähnliches.
- Falls möglich, sollten folgende Header aus dem Request entfernt werden (falls sie vom Client gesendet wurden), um zu vermeiden, dass der Client falsche Werte senden kann:
- X-Forwarded-For
- X-Forwarded-Host
- X-Forwarded-Port
- X-Forwarded-Proto (falls vom Client gesendet, wie oben beschrieben sollte dieser Header dann vom Reverse Proxy auf “https” gesetzt werden wenn es ein https Request ist)
- Falls der Reverse Proxy auch http Requests annimmt, dann sollten diese idealerweise direkt zu https redirected werden (und nicht an den weclappON Server weitergeleitet werden).
- Nachdem alles eingerichtet ist, kann man unter Mein weclapp > Unternehmensdaten die “Standard URL” konfigurieren (die wird hauptsächlich für Links in Emails verwendet): einfach auf “Auf aktuelle Webadresse setzen” klicken (und dann speichern), darüber kann man auch prüfen, ob die Reverse Proxy Konfiguration passt (da sollte dann der gleiche Host und das gleiche Protokoll sichtbar sein wie in der Adressleiste des Browsers).