Actualmente estoy desarrollando un producto que involucra dos situaciones de red. En el lado del cliente, varias computadoras forman una red P2P (múltiples ubicaciones, múltiples redes p2p), y un subconjunto de nodos de cada red establece una conexión con un subconjunto de servidores que alojamos (para intercambios de datos, actualizaciones). Todos los servidores y clientes tienen certificados, firmados con un certificado de CA.
Mi problema ahora es la actualización de las CA (intermedias). No puedo asegurar una actualización simultánea de todas las máquinas a la vez (también para fallos, se agradecería un tiempo de transición), por lo que tiene que haber un período de tiempo en el que sean válidos múltiples certificados de CA, una versión heredada que se ejecutará en no. -tiempo no flexible, y una versión actualizada para reemplazarlo.
Dado que el cliente espera con su autenticación hasta que haya recibido el certificado del servidor, puede reaccionar ante una CA obsoleta y enviar su propia cadena de certificados heredada, y como la conexión en las redes p2p se intentará de ambas maneras, puedo ignore el caso en el que un cliente heredado se encuentra con un servidor actualizado y simplemente espere a que suceda al revés.
Pero eso no funciona para los servidores centrales, ya que los clientes pueden esconderse detrás de una Capa NAT, y me parecería feo cambiar la conexión en un modelo de cliente-servidor real. Trabajar con el certificado heredado hasta el día x sin ofrecer una transición sin problemas me parece arriesgado.
Entonces, finalmente, aquí está la pregunta, ¿es posible que un servidor SSL ofrezca un certificado de respaldo en caso de que el cliente desconozca la CA actual (intermedia)?
Tengo dos ideas para las soluciones (en caso de error, recuerde la dirección IP del cliente y envíe un certificado diferente al reintentar, o ejecute el servicio en puertos diferentes con certificados diferentes), pero como actualizar las CA es una cosa real, supongo que debería Se mejor solución.
Por favor, ilumíname.