Durante l'handshake SSL,
If the server requires a digital certificate for client authentication,
the server sends a "client certificate request" that includes a list of
the types of certificates supported and the Distinguished Names of
acceptable Certification Authorities (CAs).
(citazione da un spiegazione ragionevolmente lucida dell'handshake SSL da parte di IBM.)
Il client confronta quindi i certificati nel suo archivio con quello elenco per vedere se ha firmato dalle CA che il server ha elencato. Se ne trova uno, lo invierà, di solito dopo aver chiesto all'utente se vuole inviarlo. Presumibilmente se ci fossero più corrispondenze chiederebbe all'utente di inviare (se c'è).
(Aggiornamento per rispondere al commento qui sotto relativo a GAE):
Questa pagina sembra essere un dipendente di Google che afferma che App Engine non supportare l'autenticazione del certificato client. Ora, è datato 2010, quindi non lo prenderei come ultima parola, ma è un "no" piatto.
Questa domanda sta cercando la stessa cosa, e che la persona è stata reindirizzata per esaminare OAuth2 tramite Google Cloud Endpoint . Forse questo potrebbe soddisfare le tue esigenze abbastanza bene?