For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Forum Discussion

Mrwillbaclimon's avatar
Mrwillbaclimon
Icon for Altocumulus rankAltocumulus
Aug 02, 2022
Solved

Redirect TLS 1.1/1.2 clients & Append the incoming URL to the redirect target

This is probably simpler than I'm trying to accomplish. I can't seem to get it working unfortunately. Any assistance would be appreciated.

Summary

  1. Goal is to trigger a redirect for TLS 1.1/1.2 clients and Append the incoming URL to the redirect
    (Testing out just the redirect first before I add more criteria)

Example

Inbound HTTPS Request 
https://abc.com/URIexample/abc/login?service=https%3A%2F%2website.domain.com

Redirect to HTTP(S) External Internet Site

https://xyz.com/random/random/warn.html?source=https://aaa.domainexample.com/blah/login?service=https%3A%2F

Detail on redirect
 Redirect to ----> add "source="  AND append source URI adding

 

 

 

  • I did try it and it worked well...Thank you!

    • I modified "ne" statement with "starts with" 
    • Testing User-Agent if statements now

    For example

     

    if { ([HTTP::header "User-Agent"] contains "randomagentstring") and (not ([HTTP::header "User-Agent"] contains "random/7.0")) and (not ([HTTP::header "User-Agent"] contains "xyz")) and
    (not ([HTTP::header "User-Agent"] contains "abc")) and (not ([HTTP::header "User-Agent"] contains "random2")) and (not ([HTTP::header "User-Agent"] contains "random3")) and
    ([HTTP::header "User-Agent"] contains "Build Version random") }{

  • Mrwillbaclimon's avatar
    Mrwillbaclimon
    Aug 11, 2022

    I added some if bypass statements and working very well!

     

    Thanks again

    equals "TLSv1" ) and (not ([HTTP::uri] contains "tlsWarnRedirected")) and (not([HTTP::header "User-Agent"] contains "customagent"))} {

4 Replies

  • Hi Will,

    Can you try this iRule?

    when HTTP_REQUEST {
    	if { [SSL::cipher version] equals "TLSv1.1" || [SSL::cipher version] equals "TLSv1.2" } {
    		if { [HTTP::host] ne "xyz.com"} {
    			HTTP::redirect https://xyz.com/random/random/warn.html?source=https://[HTTP::host][HTTP::uri]
    			return
    		}
    	}
    }

     

  • I did try it and it worked well...Thank you!

    • I modified "ne" statement with "starts with" 
    • Testing User-Agent if statements now

    For example

     

    if { ([HTTP::header "User-Agent"] contains "randomagentstring") and (not ([HTTP::header "User-Agent"] contains "random/7.0")) and (not ([HTTP::header "User-Agent"] contains "xyz")) and
    (not ([HTTP::header "User-Agent"] contains "abc")) and (not ([HTTP::header "User-Agent"] contains "random2")) and (not ([HTTP::header "User-Agent"] contains "random3")) and
    ([HTTP::header "User-Agent"] contains "Build Version random") }{

    • Mrwillbaclimon's avatar
      Mrwillbaclimon
      Icon for Altocumulus rankAltocumulus

      I added some if bypass statements and working very well!

       

      Thanks again

      equals "TLSv1" ) and (not ([HTTP::uri] contains "tlsWarnRedirected")) and (not([HTTP::header "User-Agent"] contains "customagent"))} {