NetScaler Content-Switching für HTTP zu HTTPS Umleitung für mehrere Domains

Hallo zusammen

In einer neuen Unified Gateway Umgebung hatte ich die Situation, dass über die gleiche IP mehrere Hostnamen angesprochen werden.
Für HTTPS wird beim Wizard automatisch schon ein Content Switching (CS) eingerichtet, welches mit weiteren Policies und Ziel vServer erweitert werden können.

Eine automatische Umleitung von HTTP nach HTTPS wird jedoch nicht eingerichtet. Zu Zeiten als jeder NetScaler Gateway (NSGW) vServer eine eigene IP hatte, richtete man einfach einen Loadbalancing (LB) vServer mit einer Redirection URL ein und fertig. Was nun aber im oben genannten Fall?

Bestehend nach dem Wizard und ein paar Anpassungen:
– CS vServer cs-vsrv-https.domain.pit mit der IP 192.168.200.10 konfiguriert für HTTPS
– NSGW vServer nsgw-vsrv-citrix.domain.pit mit der IP 0.0.0.0
– LB vServer lb-vsrv-data.domain.pit mit der IP 0.0.0.0
– LB vServer lb-vsrv-mail.domain.pit mit der IP 0.0.0.0
– drei DNS Einträge citrix.domain.pit, data.domain.pit und mail.domain.pit auf eine spezifische öffentliche IP

In unserer Umgebung haben wir dies mit einem weiteren Content Switching vServer mit HTTP und den dazu gehörenden LB vServern eingerichtet:

add cs vserver cs-vsrv-http.domain.pit HTTP 192.168.200.10 80
add cs policy cs-pol-http-citrix -rule "HTTP.REQ.HOSTNAME.STARTSWITH(\"citrix\")"
add cs policy cs-pol-http-data -rule "HTTP.REQ.HOSTNAME.STARTSWITH(\"data\")"
add cs policy cs-pol-http-mail -rule "HTTP.REQ.HOSTNAME.STARTSWITH(\"mail\")"
add lb vserver http_redirect-citrix.domain.pit HTTP 0.0.0.0 0 -redirectURL "https://citrix.domain.pit"
add lb vserver http_redirect-data.domain.pit HTTP 0.0.0.0 0 -redirectURL "https://data.domain.pit"
add lb vserver http_redirect-mail.domain.pit HTTP 0.0.0.0 0 -redirectURL "https://mail.domain.pit"
bind cs vserver cs-vsrv-http.domain.pit -policyName cs-pol-http-data -targetLBVserver http_redirect-data.domain.pit -priority 100
bind cs vserver cs-vsrv-http.domain.pit -policyName cs-pol-http-mail -targetLBVserver http_redirect-mail.domain.pit -priority 200
bind cs vserver cs-vsrv-http.domain.pit -policyName cs-pol-http-citrix -targetLBVserver http_redirect-citrix.domain.pit -priority 300

Nun prüft zuerst die Policy vom CS nach der Subdomain und leitet an den entsprechenden HTTP vServer weiter. Dieser wiederum hat eine Umleitung auf die korrekte HTTPS Adresse hinterlegt.

Am Rande bemerkt: so sieht im Grundsatz auch die CS Konfiguration des Unified Gateways aus. Dieser basiert auf HTTPS, benötigt zusätzlich noch ein SSL Zertifikat und der NSGW vServer muss eingerichtet werden. Darauf verzichte ich jedoch in diesem Blogeintrag. ;-)

Skript: NS-HTTP2HTTPS-CS




NetScaler Responder für Storefront

Hallo NetScaler Freunde

Im letzten Artikel „XML Dienste & Citrix Director gemeinsam hinter NetScaler“ berichtete ich über die Möglichkeit XML und Director über den gleichen Loadbalancing (LB) vServer zu konfigurieren. Was nun aber, wenn auch noch Storefront auf dem gleichen Server installiert ist?

Vom Prinzip her verwenden wir wieder den LB vServer wie im letzten Artikel beschrieben.

Im DNS Server fügt man nun einen weiteren Host Eintrag hinzu:
storefront.domain.pit = 192.168.100.30

Nun benötigen wir eine weitere Responder Policy, welche
– den Hostname überprüft (startet der Hostename mit storefront…?)
– prüft, ob die URL den Wert „StoreWeb“ noch nicht enthält – unabhängig der GROSSklein Schreibung
– nach /Citrix/StoreWeb umleitet, sofern oben genannte Bedingungen zutreffen:

add responder action Resp_Act_to_SF-StoreWeb redirect "\"/Citrix/StoreWeb\"" -responseStatusCode 302

add responder policy Resp_Pol_to_SF-StoreWeb "HTTP.REQ.HOSTNAME.STARTSWITH(\"storefront\") && HTTP.REQ.URL.SET_TEXT_MODE(IGNORECASE).CONTAINS(\"StoreWeb\").NOT" Resp_Act_to_SF-StoreWeb

bind lb vserver lb-vsrv-PIT-XD-HTTPS -policyName Resp_Pol_to_SF-StoreWeb -priority 100 -gotoPriorityExpression END -type REQUEST

Mit dieser weiteren Responder Policy ist nun auch dieses Ziel erreicht.

 

Skript: NS-RespStorefront