¿Cómo se borran las asignaciones de certificados de hoja SSL a dominios particulares?

Visito mi sitio web usando Chrome en macOS Mojave, por ejemplo, qa.abc.com, y el certificado de hoja SSL es de customer-test.ssl.fastly.net. Recientemente actualicé el registro CNAME en mi DNS para qa.abc.com para que apunte a b3.shared.global.fastly.net. Cuando visito qa.abc.com, resuelve el certificado SSL en customer-test.ssl.fastly.net en lugar de b3.shared.global.fastly.net.

Uno pensaría que borrar el caché podría ser el truco, pero no, ya sea en el modo de incógnito de Chrome o en borrar su caché, sigue siendo lo mismo. Luego revisé Safari, Firefox e incluso traté de ejecutar el siguiente comando en mi Terminal:

echo | openssl s_client -connect qa.abc.com:443

siendo el resultado:

---
Certificate chain
 0 s:/C=US/ST=California/L=San Francisco/O=Fastly, Inc./CN=customer-test.ssl.fastly.net
   i:/C=BE/O=GlobalSign nv-sa/CN=GlobalSign CloudSSL CA - SHA256 - G3
 1 s:/C=BE/O=GlobalSign nv-sa/CN=GlobalSign CloudSSL CA - SHA256 - G3
   i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA

Si entro en la máquina con Windows 10 de mi hermano en la misma red wifi, el sitio web extrae correctamente el certificado SSL de b3.shared.global.fastly.net. Si accedo al sitio a través de mi iPhone 6, se extrae correctamente de b3.shared.global.fastly.net. Si navego en mi MacBook a través de conexión en mi iPhone 6, aún aparece como customer-test.ssl.fastly.net.

Entonces, sabemos que:

  1. No está relacionado con el navegador, ya que todos los navegadores se ven afectados de la misma manera, incluido openssl en la línea de comandos.
  2. No está relacionado con la red, ya que otros dispositivos en la misma red funcionan bien.

Sospecho que la asignación entre un certificado SSL y un dominio se almacena en caché en algún lugar a nivel del sistema operativo.

Otras cosas que probé pero no funcionaron:

  1. Reiniciar la computadora apagándola y volviéndola a encender
  2. Busque cualquier certificado caducado en Acceso a Llaveros (sí, ya se habilitó la visualización de certificados caducados ocultos), pero no encontró nada relacionado con mi sitio web o Fastly, y no encontró ningún problema con ninguno de los certificados de Globalsign.
  3. Intenté eliminar CRL y OCSP Cache para GlobalSign, pero no es relevante porque /var/db/crls/crlcache.db, /var/db/crls/ocspcache.db, ni ~/Library/Keychains/*/ocspcache.sqlite3 existen en macOS Mojave.

Respuestas (2)

No hay almacenamiento en caché de certificados SSL como este. No es un problema de almacenamiento en caché en el cliente.

El problema aquí es con el servidor: presenta el certificado incorrecto (desde su punto de vista).

La razón por la que algunos clientes ven un certificado y otros ven otro probablemente se deba a CDN y/o al equilibrio de carga, lo que significa que en realidad no está alcanzando el mismo punto final. Parece probable que el servidor esté usando conexiones persistentes (también conocidas como sesiones pegajosas), lo que significa que su MacBook ve una cosa, pero su iPhone y su máquina con Windows 10 ven otra cosa.

Esto es algo que debe resolver a nivel de servidor. No tiene nada que ver con tu Mac como tal.

Entonces, resulta que lo que sucedió fue que asigné el dominio a una IP específica en mi archivo local /etc/hosts. Estaba apuntando a un nodo CDN que estaba entregando el certificado anterior. Una vez que eliminé la entrada, apuntaba a un nuevo nodo con el certificado correcto.