I'm using Apache 2.4, with two certificates, one RSA signed by CACert, and one ECC self-signed. Neither of these certificates provide a path to a broswer-trusted root certificate. My question is this: When presented with two different certificates for a website, how does the browser decide which one to use?
My educated guess from reading the spec: The browser will never see more than one server-certificate. Rather the cipher spec is negotiated in advance. And ONLY THEN does the server send the certificates.
So if negotiation winds up with an an RSA-cert authenticated cipher suite, then the RSA cert chain will be sent. And if the negotiation winds up with an ECDSA-cert authenticated cipher suite, then the ECDSA cert chain will be sent.
Standards document: http://tools.ietf.org/html/rfc5246#section-7.4.2
7.4.2. Server Certificate [...] The certificate MUST be appropriate for the negotiated cipher suite's key exchange algorithm and any negotiated extensions.
I can't test for this right now.
And: last I heard (2013) SSL-Labs couldn't either: Qualys Forums: Dual certificates and key exchange scores