Forum Discussion
zafer
Nimbostratus
Dec 28, 2009InsertCertInServerHeaders
Hello
i tested this rule, but it does not check empty Certificate from IE.
i tested with Firefox and i try send Empty certificate to the vip, Redirect works properly but when i tested with IE i can access the home page.its security hole
note: we need add this into the iRule
} elseif { $ssl_errstr2 eq "" } {
HTTP::redirect "http://192.168.0.64/empty.html"
log local0. "client: [IP::remote_addr]:[TCP::remote_port] Empty certificate"
regards zafer
- The_Bhattman
Nimbostratus
Hi Zafer, - The_Bhattman
Nimbostratus
Nevermind. I never looked at the subject of your post. - zafer
Nimbostratus
Hi bhatman - The_Bhattman
Nimbostratus
I am sorry I am a bit confused because your first posting you had wrote that I.E. didn't work- but now it does? Is Firefox the problem or IE or both? - hoolio
Cirrostratus
Zafer,client_cert_header_insert_rule when CLIENTSSL_CLIENTCERT { Check if client presented at least one cert if {[SSL::cert count] > 0}{ Insert the following fields in the session table with a timeout of 7200 seconds: Do the processing now as opposed to in HTTP_REQUEST as there can be many HTTP requests using the same SSL session ID Index - item 0 - base64 encoding of the client SSL cert 1 - serial number of the cert 2 - the verification status text for the client cert against the client SSL profile's root CA cert session add ssl [SSL::sessionid] [list \ [SSL::verify_result] \ [b64encode [SSL::cert 0]] \ [X509::serial_number [SSL::cert 0]] \ ] 7200 log local0. "[IP::client_addr]:[TCP::client_port]: Added session data for cert. Status:\ [X509::verify_cert_error_string [lindex [session lookup ssl [SSL::sessionid]] 0]] with key [SSL::sessionid]" } } when HTTP_REQUEST { Check if SSL session ID is in the cache (SSL::sessionid returns 64 zeroes if it's not) if {[SSL::sessionid] ne "0000000000000000000000000000000000000000000000000000000000000000"}{ Get the session table entry (a TCL list) for this session ID set session_data [session lookup ssl [SSL::sessionid]] Check if the first element of the session table entry for this session ID is 0 (status for successful cert validation) if {[lindex $session_data 0] == 0}{ log local0. "[IP::client_addr]:[TCP::client_port]: Valid cert per session table entry. Inserting cert details in HTTP headers." Insert cert details in the HTTP headers HTTP::header insert SSLClientCertStatus "ok" HTTP::header insert SSLClientCertb64 [lindex $session_data 1] HTTP::header insert SSLClientCertSN [lindex $session_data 2] Exit this event in this rule return } } If we're still in this rule, cert wasn't valid so send HTTP 302 redirect to an error page HTTP::respond "http://[HTTP::host]/cert_error.html" log local0. "[IP::client_addr]:[TCP::client_port]: No or invalid cert from client." }
- zafer
Nimbostratus
Hi Bhattman - zafer
Nimbostratus
Hi Aaron - hoolio
Cirrostratus
Hi Zafer, - Scot_86001
Nimbostratus
What versions is the above iRule supported under? - hoolio
Cirrostratus
Hi Scot,
Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects