How to prevent SSL proxy from breaking client certificate authentication with a web server?

<< Back to Knowledge Search



It is not uncommon for HTTPS servers to require client certificate authentication. This setup is used when server intends to authenticate incoming requests based on the certificate in the client’s certificate store (e.g., Internet Explorer’s certificate store). The server may have application specific logic which looks at certain fields in the client certificate to infer the user’s identity to authenticate and authorize the user.

The problem statement is: SSL Proxy when intercepting traffic resets the underlying TCP connection when server requests client certificate. The new feature is tunnel the traffic thereafter if policy detects this scenario and is set to tunnel, or intercept the traffic and generate an exception page if policy detects this scenario and is set to intercept or intercept on exception.

Solution: upgrade to SGOS or later, apply the new policy as described in the Content Policy Language Reference (this can be dowloaded from

Tests whether or not the server has requested SSL client certificate authentication.

When the SSL proxy establishes a connection with the server and the server requests an SSL client certificate, this condition is set to yes; else, it is set to no. This condition is NULL for transactions that do not involve an SSL connection to the client.

When the ProxySG evaluates this condition, it uses a list of requesting servers (a Client Certificate Requested list) to determine if a client certificate was requested during both an initial handshake and renegotiation. As long as this condition exists in policy, the ProxySG can automatically detect servers that request a client certificate during renegotiation and maintain the Client Certificate Requested list.

client.certificate.requested = yes|no

Layer and Transaction Notes
  • Use in <SSL-Intercept> layer.
  • Applies to: SSL Intercept transactions
This condition is used to avoid intercepting SSL proxy traffic when a server requests a client certificate to authenticate the client. The reason is that client certificates are not supported in this configuration. When intercepting such traffic, the appliance generates an exception page. The policy below enables SSL proxy interception only when a client certificate is not requested by the server.
; If the server requests a client certificate, tunnel the SSL traffic via SSL proxy
  client.certificate.requested=yes ssl.forward_proxy(no)
; Otherwise, intercept SSL traffic using HTTPS forward proxy.

; Exclude the bottom rule if you have a rule to bypass SSL interception in VPM.
Additional Information
Bug Number
InQuira Doc IdFAQ893

Article Feedback

Hide Properties
First Published      10/01/2014
Last Modified      02/02/2016
Last Published      10/01/2014
Article Audience
Product      ProxySG
Software      SGOS 5, SGOS 6
Topic      SSL / HTTPS, Usability
Article Number      000011271
Was this helpful?
Previous MonthNext Month