My web application authenticates users via preauthentication (every request includes the client-side cert that the server uses to authenticate the request).
Setup: Apache web server, Tomcat application server, mod_jk connector
- Client hits Apache server and selects a certificate
- SSL handshake begins where client's browser verifies server's certificate, and server ensures that client's passed-in certificate is valid
- Once SSL is established, server passes SSL_CLIENT_CERT to Tomcat for authentication
EDIT:
Addtionally, the user's client certificate is checked against a Certificate Revocation List (CRL).
Is the additional time required to download the CRL or CRL Delta and then check that the client's certificate hasn't been revoked likely time-consuming?