How does web browser understand which x509 certificate it should send to server?

ssl, x509certificate

Solution

SSL/TLS server sends Certificate Request message (see RFC 4346 for TLS 1.1 or others). In this message there is only certificate type and acceptable certificate authorities names, so server doesn't tell anything about particular certificate. The possible reason is that your certificate of invalid type (i.e. DSA instead of RSA but key exchange algorithm depends on client RSA certificate), or server requests certificate of different certificate authority.

Problem

I'm trying to create web application with client certificates, generated programmatically. My main problem is following: I've added generated `.p12` keystore to my web browser, but it doesn't send certificate to the server. How does browser understand which x509 certificate it should use? And is it possible to debug SSL in Chrome of Firefox?

Original source