Citrix NetScaler: redirect HTTP to HTTPS tramite responder policy

28 giugno 2012

 Per fare un semplice redirect da HTTP a HTTPS è sufficiente lasciare un lbvs senza servizi e configurare il campo “Redirect URL”:

Questo sistema è estremamente veloce, ma presenta due limiti. Il primo è puramente estetico: infatti, poiché il vserver non è abbinato ad alcun servizio, risulta down (e così deve essere per onorare la redirezione), lasciando quindi un antipatico pallino rosso. Il secondo è legato al fatto che la redirezione è assoluta e quindi non ci permette di reuperare un eventuale path inserito dall’utente.

Con poche righe di codice è possibile ovviare a entrambe questi limiti:

add server FakeServer 169.254.1.1
add service FakeService FakeServer HTTP 80 -gslb NONE -maxClient 0 -healthMonitor NO -maxReq 0 -cip DISABLED -usip NO -useproxyport YES -sp OFF -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP NO
add responder action RedirectToHTTPS_act redirect "\"https://\"+HTTP.REQ.HOSTNAME+HTTP.REQ.URL" -bypassSafetyCheck YES
add responder policy RedirectToHTTPS true RedirectToHTTPS_act
add lb vserver redir_svc HTTP 1.1.1.1 80 -persistenceType NONE -cltTimeout 180
bind lb vserver redir_svc FakeService
bind lb vserver redir_svc -policyName RedirectToHTTPS -priority 100 -gotoPriorityExpression END

 Queste poche righe di codice vanno ovviamente personalizzate sostituendo i nomi e gli indirizzi.

Fonte: Redirecting port 80 to 443 for AGEE the nice way