Sto osservando un problema in cui l'handshake TLS sta fallendo tra un client Java e un servizio web ospitato su IIS 7. Dopo averlo intercettato, sembra che il problema sia l'elenco delle autorità attendibili fornite nel frame richiesta certificati. non includere la CA intermedia che ha firmato il certificato cliente che si intende utilizzare. Osservando la RFC si afferma che il frame dovrebbe includere
A list of the distinguished names of acceptable certificate authorities. These distinguished names may specify a desired distinguished name for a root CA or for a subordinate CA; thus, this message can be used both to describe known roots and a desired authorization space.
Per me questo significa che l'intermedio avrebbe dovuto essere incluso. C'è qualche impostazione nascosta per forzare l'inclusione della CA intermedia o sono errata nella mia interpretazione delle specifiche. Se non sono corretto, non vedo come sia possibile identificare il certificato cliente appropriato.
Modifica Per dare un po 'più di fondo. La catena di fiducia in questione è di Entrust ed è composta da tre livelli profondi, la CA, una CA intermedia e la foglia. In questo caso il servizio è protetto da un Cert Server firmato dall'intermedio e il client sta chiamando utilizzando un Cert Client firmato dallo stesso intermediario.