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 22.214.171.124 or later,apply the new policy as the SGOS CMG:
Chapter 3: Condition Reference
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.
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 ProxySG 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
; Otherwise, intercept SSL traffic using HTTPS forward proxy.
; Exclude the bottom rule if you have a rule to bypass SSL interception in VPM.