Einrichten von HTTPS für das Backend
Der hier bereitgestellte Artikel setzt Grundwissen in der Server-Administration voraus und richtet sich in erster Linie an Administratoren, die eine gesicherte HTTPS Verbindung zwischen der App und dem Backend (Treesoft Backend) auf einem Windows Server Betriebssystem einrichten möchten.
Das Backend selbst kommuniziert ausschließlich über HTTP. Damit die Kommunikation über eine HTTPS-Verbindung abgesichert werden kann, muss ein so genannter Reverse-Proxy eingerichtet werden. Dieser Reverse-Proxy verfügt über ein SSL-Zertifikat und kommuniziert dadurch über HTTPS mit der App. Anschließend wird die Kommunikation über HTTP an das Backend weitergeleitet.
In dieser Anleitung gehen wir davon aus, dass der Reverse-Proxy auf dem gleichen Server installiert wird, wie das Backend der App.
An dieser Stelle weisen wir darauf hin, dass selbstsignierte Zertifikate ausdrücklich NICHT unterstützt werden! Sollten sie bereits ein gültiges Zertifikat besitzen, können Sie mit Abschnitt "IIS als Reverse-Proxy mit eigenem SSL-Zertifikat" fortfahren. Als alternative wird im Abschnitt "IIS als Reverse-Proxy mit Lets Encrypt" beschrieben, wie Sie die kostenfreie Certificate Authority Let's Encrypt verwenden können.
IIS als Reverse-Proxy mit eigenem SSL-Zertifikat
Der Internet-Information-Server (IIS) von Microsoft kann über zusätzliche Module die Aufgabe eines Reverse-Proxys übernehmen.
Vorraussetzungen
- Windows Server 2008 oder neuer
z.B. Hostname = McCoy - Standard-Installation von Treesoft Office
- Externer Server-Zugriff
z.B. über:https://197.111.111.111
In diesem Beispiel gibt es eine Weiterleitung im Router von Port 443 auf den Host McCoy mit Port 443.
Installation
1. IIS als Rolle auf dem Windows-Server installieren
https://mntechblog.de/webserver-iis-unter-windows-server-2012-installieren/
2. Module "URL Rewrite 2.0" und "Application Request Routing 2.5" über "Web Platform Installer" installieren
"Web Platform Installer": https://www.microsoft.com/web/downloads/platform.aspx
Jeweils nach den Namen der Module suchen und mit "Hinzufügen" installieren.
3. IIS-Manager öffnen
4. Zertifikat hinzufügen
4.1. Zertifikatsverwaltung öffnen
5. Website "Treesoft Office Mobile" hinzufügen
Über den Kontext-Menü Befehl "Website hinzufügen..." können Sie das Ziel für den Reverse-Proxy einrichten. Als Bindungstyp ist HTTPS zu wählen. Anschließend kann unterhalb von SSL-Zertifikat das zuvor hinzugefügte Zertifikat ausgewählt werden. Standardmäßig ist der Reverse-Proxy per HTTPS über den Port 443 erreichbar.
6. Reverse-Proxy Regel konfigurieren
In diesem Schritt wird die Weiterleitung über den Reverse-Proxy an das lokale Backend konfiguriert. Immer wenn der Reverse-Proxy über den Port 443 per HTTPS angesprochen wird, erfolgt eine Weiterleitung an die in der Konfiguration hinterlegte URL. Der Standard-Port für das Backend ist 15058. Wenn Ihr Backend auf einem alternativen Port betrieben wird, muss die Konfiguration entsprechend angepasst werden.
1. Website "Treesoft Office Mobile" im IIS öffnen
2. Module URL Rewrite öffnen
7. Zugriff testen
Das Backend stellt für Testzwecke einen Endpunkt bereit, der auch ohne Authentifizierung angesprochen werden kann. Dieser Entpunkt kann genutzt werden, um die Verbindung zu testen. Für den Test genügt ein beliebiger Browser. Ein Ergebnis ähnlich dem folgenden sollte dabei erscheinen:
{"message":"i am alive!","version":"1.0.0","app":"TreesoftBackend"}
z.B. über:https://197.111.111.111/api/healthcheck
IIS als Reverse-Proxy mit Lets Encrypt
Let’s Encrypt is a free, automated, and open Certificate Authority.
Um die Verschlüsselung im Internet vorranzutreiben bietet Lets Encrypt kostenfreie Zertifikate. Vorraussetzung dafür ist, dass die Komponente die das Zertifikat nutzt über eine Domain im Internet erreichbar ist. Nachdem spezielle Mechanismen sichergestellt haben, dass man Eigentümer der Domain ist, wird das Zertifikat ausgestellt.
Vorraussetzungen
- Windows Server 2008 oder neuer
- Standard-Installation von Treesoft Office
- Externer Server-Zugriff
z.B. über:https://mobile-demo.treesoft.de
Die Domäne mobile-demo.treesoft.de zeigt beispielsweise auf den Router 197.111.111.111. Im Router gibt es eine Weiterleitung von Port 443 auf den Server mit Port 443 sowie eine Weiterleitung von Port 80 auf den Server mit Port 80. Die Weiterleitung von Port 80 ist erforderlich, damit Let's Encrypt sicherstellen kann, dass Sie tatsächlich Inhaber der Domäne sind.
Installation
1. IIS als Rolle auf dem Windows-Server installieren
https://mntechblog.de/webserver-iis-unter-windows-server-2012-installieren/
2. Module "URL Rewrite 2.0" und "Application Request Routing 2.5" über "Web Platform Installer" installieren
"Web Platform Installer": https://www.microsoft.com/web/downloads/platform.aspx
Jeweils nach den Namen der Module suchen und mit "Hinzufügen" installieren.
3. IIS-Manager öffnen
4. Website "Treesoft Office Mobile" hinzufügen
Über den Kontext-Menü Befehl "Website hinzufügen..." können Sie das Ziel für den Reverse-Proxy einrichten. Als Bindungstyp bleibt HTTP bestehen. Als Hostname ist die Domäne einzutragen, unter der das Backend über das Internet erreichbar ist.
5. Certify installieren (Aktuell Version 4.1.6)
Dieses Tool dient als Bindeglied zwischen dem IIS und Lets Encrypt. Es kümmert sich darum über Lets Encrypt ein Zertifikat zu beziehen und verknüpft es automatisch mit der zuvor erstellten Website im IIS. Außerdem kümmert es sich darum das Zertifikat vor Ablauf frühzeitig zu erneuern.
6. Certify starten
1. Neues Zertifikat erstellen (New Certificate)
7. Reverse-Proxy Regel konfigurieren
In diesem Schritt wird die Weiterleitung über den Reverse-Proxy an das lokale Backend konfiguriert. Immer wenn der Reverse-Proxy über den Port 443 per HTTPS angesprochen wird, erfolgt eine Weiterleitung an die in der Konfiguration hinterlegte URL. Der Standard-Port für das Backend ist 15058. Wenn Ihr Backend auf einem alternativen Port betrieben wird, muss die Konfiguration entsprechend angepasst werden.
1. Website "Treesoft Office Mobile" im IIS öffnen
2. Module URL Rewrite öffnen
8. Zugriff testen
Das Backend stellt für Testzwecke einen Endpunkt bereit, der auch ohne Authentifizierung angesprochen werden kann. Dieser Entpunkt kann genutzt werden, um die Verbindung zu testen. Für den Test genügt ein beliebiger Browser. Ein Ergebnis ähnlich dem folgenden sollte dabei erscheinen:
{"message":"i am alive!","version":"1.0.0","app":"TreesoftBackend"}
https://mobile-demo.treesoft.de/api/healthcheck
- Treesoft Office Mobile (mobiler Zugriff)
- ERP-Schnittstelle Sage New Classic
- Treesoft Office ELDANORM Importschnittstelle
- Treesoft Office DATANORM Importschnittstelle