SAP Web Dispatcher – Zertifikate für mehrere Domains (SNI)
Wenn Sie einen SAP Web Dispatcher als Reverse Proxy einsetzen und über diesen HTTPs-verschlüsselten Verkehr leiten wollen, bekommen Sie ein Problem, sobald Sie mehrere Domains und/oder IP-Adressen ansprechen wollen. Für jede Domain, die ein Client anfrägt müssen Sie ihm das dazu passende SSL-Zertifikat bereitstellen. Zeigen Sie ihm serverseitig ein Zertifikat, welches nicht zur angefragten Domain passt, bekommt der Besucher eine Fehlermeldung und automatisierte Backend-Prozesse verweigern häufig den Dienst. Das gleiche Problem haben Sie auch ohne den SAP Web Dispatcher, wenn Sie direkt mit dem Internet Communication Manager (ICM) sprechen wollen. Für klassische Webserver habe ich diese Problematik schon in diesem Beitrag angesprochen und über SNI gelöst. Nun widmen wir uns der Problematik im SAP-Umfeld.
Inhaltsverzeichnis
Die beiden Szenarien
Grundsätzlich kann Sie diese Problematik in zwei Szenarien treffen:
- Szenario 1: Der SAP Web Dispatcher oder ICM horcht immer auf der selben IP, soll jedoch mehrere Domains unterstützen, die auf die gleiche IP-Adresse zeigen
- Szenario 2: Der SAP Web Dispatcher horcht auf mehreren IPs, und jede der unterstützten Domains zeigt auf eine andere
Szenario 1
Wenn beispielsweise zwei Domains haben, die auf die selbe IP-Adresse zeigen, dann können Sie dieses Problem lösen, indem Sie entweder
- Szenario 1 – Lösung 1: für jede Domain dem Web Dispatcher einen anderen Port geben
- Szenario 1 – Lösung 2: oder den Web Dispatcher für jede Domain nicht nur auf der selben IP, sondern auch auf der selben IP (bspw. Port 443) horchen lassen, und stattdessen SNI aktivieren.
Szenario 1 – Lösung 1:
Beispiel Sie haben zwei Hostnamen
- portal.mycompany.com
und - ecc.mycompany.com
und beide zeigen auf die IP Adresse 10.10.10.10.
Lösen Sie das Problem wie folgt. erzeugen Sie zunächst zwei .pse-Dateien. Jede PSE enthält das Zertifikat zu jeweils einer der beiden Domains. Nennen Sie die PSE Datei für die Domain portal.mycompany.com portal.pse und die PSE für die Domain ecc.mycompany.com ecc.pse.
Konfigurieren Sie in der Konfigurationsdatei des Web Dispatchers folgende Parameter
ssl/server_pse = ecc.pse # kann auch portal.pse sein, spiel keine Rolle #Konfiguration fuer die PSE portal.mycompany.com icm/ssl_config_0 = CRED=portal.pse #Konfiguration fuer die PSE ecc.mycompany.com icm/ssl_config_1 = CRED=ecc.pse #Oeffnen des Ports fuer portal.mycompany.com icm/server_port_0 = PROT=HTTPS, PORT=443, SSLCONFIG=ssl_config_0 #Oeffnen des Ports fur ecc.mycompany.com icm/server_port_1 = PROT=HTTPS, PORT=444, SSLCONFIG=ssl_config_1
Von nun an erreichen sie die Domain ecc.mycompany.com erfolgreich über Port 444 und portal.mycompany.com erfolgreich über Port 443.
Szenario 1 – Lösung 2:
Auch in diesem Beispiel haben wir die beiden Hostnamen
- portal.mycompany.com
und - ecc.mycompany.com
Erzeugen Sie auch hier zwei .pse-Dateien. eine PSE enthält das TLS Zertifikat zu portal.mycompany.com und heißt portal.pse, die andere PSE enthält das Zertifikat zu ecc.mycompany.com und heißt ecc.pse.
Konfigurieren Sie im SAP Web Dispatcher die folgenden Konfigurationswerte.
#Festlegen der SSL Konfigurationm icm/ssl_config_0 = CRED=SAPSSLS.pse, SNI_CREDS=ecc.pse,portal.pse #Oeffnen der Ports fuer beide Hostnamen ueber SNI icm/server_port_0 = PROT=HTTPS, PORT=443, SSLCONFIG=ssl_config_0
Szenario 2
In diesem Szenario horcht der SAP Web Dispatcher nun auf zwei IP-Adressen. Jede der beiden Domains zeigt auf eine andere IP-Adresse. Hierbei gehen wir davon aus dass,
- portal.mycompany.com auf 10.10.10.10
und - ecc.mycompany.com auf 10.10.10.20
zeigt. Auch hier speichern wir die PSE für portal.mycompany.com unter portal.pse und die PSE für ecc.mycompany.com als ecc.pse. Konfigurieren Sie den Web Dispatcher wie folgt.
ssl/server_pse = ecc.pse # kann auch portal.pse sein #Konfiguration fuer portal.mycompany.com icm/ssl_config_0 = CRED=portal.pse #Konfiguration fuer ecc.mycompany.com icm/ssl_config_1 = CRED=ecc.pse #Oeffnen des Ports fuer ECC Domain icm/server_port_0 = PROT=HTTPS, PORT=443, HOST=10.10.10.20, SSLCONFIG=ssl_config_1 #Oeffnen des Prots fuer portal Domain icm/server_port_1 = PROT=HTTPS, PORT=443, HOST=10.10.10.10, SSLCONFIG=ssl_config_0
Eine Antwort
[…] Und weiter geht es in der kurzen Reihe der SNI-Konfiguration im SAP-Umfeld. SNI adressiert die grundsätzliche Problematik, dass wenn ein Webserver auf einer einzigen IP-Adresse horcht und dabei über mehrere Domains erreicht werden kann, dass er dem Anfragenden das richtige TLS-Zertifikat zeigen muss – nämlich das Zertifikat für die Domain, die der Client gerade angefragt hat. Damit das allerdings funktioniert, muss auch der Client das SNI-Verfahren unterstützen. Und genau diesem Profil widmen wir uns in diesem Beitrag. Lesen Sie außerdem meinen Beitrag über die Lösung der Problematik auf der Serverseite. […]