¿Por qué los navegadores saben qué certificado usar cuando hay varios certificados?

¿Por qué los navegadores saben qué certificado usar cuando hay varios certificados?

Soy muy nuevo en el mundo de los servidores y las redes, espero que las preguntas sean claras y no sean tan triviales. Recientemente me encontré con el siguiente escenario:

  1. Había un certificado raíz A, que caducará unos meses después. Había otro nuevo certificado raíz B, que pretendía reemplazar al A. Tanto A como B están autofirmados. Los navegadores/SO nuevos y antiguos confían en la CA de A, mientras que en la CA de B solo confían los navegadores/SO modernos

  2. Había un certificado cruzado A->B (B firmado por A) que se utiliza actualmente en nuestros servidores. Sin embargo, como A va a caducar pronto, aplicamos otro certificado cruzado C->B (B firmado por C, en cuya CA de C confían tanto los navegadores/SO nuevos como los antiguos) como reemplazo.

  3. Ahora, en el entorno UAT, actualizamos el certificado C->B, y para el lado del cliente intento usar algunos navegadores heredados para las pruebas, verifiqué que solo CA de A y CA de C son confiables, mientras que CA de B no lo es. Para el entorno PROD, nos mantenemos sin cambios, es decir, utilizamos el certificado A->B.

  4. Accedo al sitio UAT con el navegador mencionado y verifiqué que el certificado utilizado es A->B, por primera vez. Sorprendentemente, para el acceso posterior a los sitios UAT y PROD, el certificado utilizado es C->B (comprobado en el lado del cliente).

Mi pregunta es, ¿es este comportamiento normal? ¿Por qué el lado del cliente "sabe" utilizar C->B desde el primer acceso a los sitios UAT? También lo uso openssl s_clientpara verificar que el servidor PROD todavía esté usando A->B. ¿Cómo saben los navegadores qué certificado utilizar y "actualizar" el certificado en consecuencia?

Editado el 13 de diciembre de 2022

  1. Nuestro objetivo principal es admitir tanto navegadores/SO muy antiguos como navegadores/SO modernos. es decir, todos los navegadores pueden acceder a nuestro sitio correctamente incluso después de que expire el certificado A.
  2. Creo que mi principal pregunta, o duda, es si lo siguiente es cierto:
  • Los navegadores antiguos, al acceder por primera vez al sitio UAT, muestran que el servidor está usando el certificado A->B debido a algún mecanismo de almacenamiento en caché.
  • Después del primer acceso al sitio UAT, el servidor realmente "envía" el nuevo certificado C->B al lado del cliente que está configurado en el servidor. Ahora, los navegadores, o incluso el nivel del sistema operativo, reconocieron que el último certificado es C->B, ya no A->B.
  • Aunque se reconoce C->B, el certificado A->B todavía se guarda en el navegador/SO. Pero el navegador de alguna manera sabe verificar con el certificado más nuevo C->B. Lo que significa que nuestro propósito se puede lograr.

Respuesta1

Haceeste¿responde tu pregunta?

Desde el enlace, borrar el estado de caché/SSL del navegador podría ser lo que debe hacer:

Los navegadores web almacenan en caché los certificados SSL para acelerar la experiencia de navegación. Normalmente, esto no es un problema. Sin embargo, cuando desarrolla páginas para su sitio web o instala un nuevo certificado, el estado SSL del navegador puede interponerse. Por ejemplo, es posible que no vea el icono del candado en la barra de direcciones del navegador después de instalar un nuevo certificado SSL.

información relacionada