Una pregunta anterior, Qué ¿El uso de certificados de firma cruzada en X.509? se describe bien en los certificados firmados.
Tengo una situación en la que los clientes confían en CA1 xor CA2, y ambos necesitan llegar a un solo servicio. Lógicamente, esto significa que necesito dos certificados de entidad final para el mismo nombre de host. A partir de una sola clave SSL, generé un solo CSR y lo envié a ambas CA, y obtuve los dos certificados de entidad final separados.
Configuré a Apache para que sirviera los certificados juntos y todos los intermedios relevantes en la cadena.
Lo que me ha dejado perplejo es la posibilidad de que Apache mod_ssl se bloquee con fuerza con [Tue Nov 25 15:28:35 2014] [error] Init: Multiple RSA server certificates not allowed'
s_server
de OpenSSL lee múltiples -cert
, -dcert
argumentos, toma el primer certificado RSA en el último argumento.
Usando GnuTLS a través de mod_gnutls o directamente, toma solo el último certificado o reclama The provided X.509 certificate list is not sorted (in subject to issuer order)
Creo que, leyendo RFC4158, lo que estoy tratando de hacer debería ser válido. ¿Dónde me he equivocado? ¿Por qué la firma cruzada solo parece ser válida entre los certificados intermedios y raíz?
No hay ninguna posibilidad de diferenciar entre los clientes, así que no puedo hacer trampas y ejecutar diferentes vhosts en diferentes IP (los clientes comparten el DNS). Tampoco tengo control sobre cómo obtener ambas CA en los clientes. La única solución de trabajo que tengo hasta ahora es empujar a cada grupo de clientes a un único nombre de host fuera de banda.