NetScaler HTTP zu HTTPS Umleitung mit Responder Policies für mehrere Domains
Im Artikel „NetScaler Content-Switching für HTTP zu HTTPS Umleitung für mehrere Domains“ habe ich eine Variante der HTTP zu HTTPS Umleitung mittels Content Switching (CS) beschrieben. Mein Kollege Claudio Mascaro hat das Ganze nun ein wenig eleganter mittels einer Responder Policy gelöst :-)
Dafür benötigt man als ersten einen HTTP Loadbalancing (LB) vServer, welcher permanent „ON“ ist und welcher die gleiche IP wie der HTTPS CS vServer aufweist (z.B. 192.168.200.10):
add server PITDUMMY 192.168.199.199 add service svc-HTTPtoHTTPS PITDUMMY HTTP 80 -healthMonitor NO bind service svc-HTTPtoHTTPS -monitorName tcp -monState DISABLED add lb vserver lb-vsrv-http.domain.pit HTTP 192.168.200.10 80 bind lb vserver lb-vsrv-http.domain.pit svc-HTTPtoHTTPS
Um den Service permanent „ON“ zu schalten wurde das Monitoring mit den Parametern deaktiviert:
– -healthMonitor NO
– bind service HTTPtoHTTPS -monitorName tcp -monStateDISABLED
Nun benötigt man noch eine Responder Policy welche die Anfrage von HTTP zu HTTPS umleitet:
add responder action rs_act_httptohttps redirect "\"https://\" + HTTP.REQ.HOSTNAME.HTTP_URL_SAFE + HTTP.REQ.URL.PATH_AND_QUERY.HTTP_URL_SAFE" -responseStatusCode 302 add responder policy rs_pol_httptohttps "!CLIENT.SSL.IS_SSL" rs_act_httptohttps
Zu guter Letzt muss diese Policy nun noch dem vorher erstellten LB vServer zugewiesen werden:
bind lb vserver lb-vsrv-http.domain.pit -policyName rs_pol_httptohttps -priority 100 -gotoPriorityExpression END -type REQUEST
Ab jetzt wird jede HTTP Anfrage an die IP 192.168.200.10 nach HTTPS umgeleitet. Somit ist der Weg frei um beim HTTPS CS vServer jederzeit neue Policies hinzuzufügen, ohne sich noch Gedanken über eine Umleitung machen zu müssen.
Ein spezieller Dank geht hier an unseren Master CCI Claudio Mascaro, welcher dies auf unserem System entsprechend eleganter als meine Lösung eingerichtet hat :-)
Skript: NS-HTTP2HTTPS-Responder