Una domanda precedente, Cosa è l'uso dei certificati per la firma incrociata in X.509? descritto bene per i certificati incrociati.
Ho una situazione in cui i client si fidano di CA1 xor CA2, ed entrambi devono raggiungere un singolo servizio. Logicamente, questo significa che ho bisogno di due certificati di entità finale per lo stesso nome host. Da un'unica chiave SSL, ho generato un singolo CSR e inviato a entrambe le CA e ottenuto i due certificati di entità finale separati.
Ho configurato Apache per servire entrambi i certificati insieme e tutti gli intermedi pertinenti nella catena.
Ciò che mi ha convinto è la possibilità di arrestare il blocco di mod_ssl di Apache con [Tue Nov 25 15:28:35 2014] [error] Init: Multiple RSA server certificates not allowed'
Il s_server
di OpenSSL legge più -cert
,% argomenti di-dcert
, prende il primo certificato RSA nell'ultimo argomento.
Usando GnuTLS tramite mod_gnutls o direttamente, prende solo l'ultimo certificato o reclami The provided X.509 certificate list is not sorted (in subject to issuer order)
Penso che, leggendo RFC4158, ciò che sto cercando di fare dovrebbe essere valido. Dove ho sbagliato? Perché la firma incrociata sembra essere valida solo tra i certificati intermedio e root?
Non c'è modo in anticipo di differenziare i client, quindi non posso imbrogliare ed eseguire vhosts diversi su IP diversi (i client condividono il DNS). Non ho il controllo su come ottenere entrambe le CA nei client. L'unico work work-around che ho finora è quello di spingere ciascun gruppo di client verso un unico hostname out-of-band.