Forum Discussion

smedakkar_85975's avatar
smedakkar_85975
Icon for Nimbostratus rankNimbostratus
Jan 08, 2013

Unable to send SSL response to client

Hi,

 

This is my first post on this forum and before doing so, I have tried to read as much as possible to find other posts with a similar issues. Unfortunately there isn't anything out there that exactly fits my issue.

 

As mentioned in the "Handling Client Certificates" post in 2010, I'm trying to implement SSL re-encryption (https://devcentral.f5.com/tech-tips/articles/persisting-ssl-connections) - i.e. Client->SSL->Big-IP->SSL->application server

 

I've configured both a custom client SSL profile and a custom server SSL profile, and assigned them to my virtual server. The client SSL profile is configured with a CA signed certificate and the server SSL profile is configured with a BIG-IP self signed certificate. I have an iRule assigned to this virtual server which simply logs the request from the client, and the response from the server. The client SSL profile is set to its default value i.e. to ignore the client certificate.

 

When attempting to access the backend server at https://example.com, the client's SSL request is decrypted on the BIG-IP and in turn my iRule is invoked as expected. The request is then re-encrypted and sent to the virtual server, which in turn responds appropriately. My iRule is correctly invoked here to shows the decrypted response I've received from the server.

 

However, it's at this point that something goes wrong. The response is never sent back to the client for some reason and I can't work out why.

 

Any help would be greatly appreciated.

 

I've tried adding SSL::respond [HTTP::payload] into the iRule to send the response back to the client when it is received from the virtual server but I simply get a error saying "Error: SSL hudfilter not reached or not in chain". TBH I don't think I need this as BIG-IP should do this out of the box in this configuration.

 

Thank you in advance.

 

Btw, I should have said that the version of BIG-IP we have is 10.1.0

 

Here's my iRule:

 

 

when RULE_INIT {

 

set reject_provisioning_page {

 

 

 

 

 

404 - Page Not Found.

 

 

 

}

 

}

 

 

when HTTP_REQUEST {

 

if { [matchclass [HTTP::uri] starts_with $::MyValidUris] } {

 

log "Request received from client: [IP::client_addr]"

 

log "Request content: [HTTP::method] [HTTP::uri]"

 

} else {

 

log "Responding with error as the request's URI is not in the list of valid URIs"

 

HTTP::respond 404 content [subst $::my_reject_page]

 

}

 

}

 

 

when HTTP_RESPONSE {

 

log "[HTTP::status] response received from server: [IP::server_addr]"

 

log "Response Payload: [HTTP::payload]"

 

}

 

12 Replies