Suponiendo que la fuente del nuevo certificado es la que está fijando, y el certificado de anclaje no se ha revocado, probablemente esté bien. En algún nivel, debe confiar en el sistema (EDITAR: quiero decir que debe confiar en que la clave pública criptográfica funciona en general, no que el sistema PKI / CA en particular sea confiable), y ya está haciendo todo lo que razonablemente puede hacer. para verificar el servidor.
Ahora, dicho esto, la práctica estándar es anclar solo la información de la clave pública (lo que significa que puede hacer cosas como volver a emitir el mismo certificado con una nueva fecha de caducidad, sin interrumpir su fijación) y fijar la clave de su certificado actual, y una clave de copia de seguridad. La clave de respaldo es para si necesita rotar o revocar su certificado actual, en lugar de simplemente volver a emitirlo. El par de claves de copia de seguridad se puede crear de antemano y, a continuación, lanza la única copia de la clave privada de copia de seguridad en una bóveda o algo así hasta que la necesite.
Entre la capacidad de volver a emitir certificados siempre que no cambie la clave pública y tener una clave de respaldo si necesita cambiar las claves, debe tener una ventana grande entre cuando debe rotar / revocar Una llave, y cuando el pinning se rompe. Durante esta ventana, puede lanzar una actualización de la aplicación que convierta la copia de seguridad anterior en la clave principal, agregue una nueva copia de seguridad y elimine la primaria principal en la que ya no se confía. Si es necesario, su aplicación puede incluir una función de verificación de versión que recuerda a los usuarios que deben actualizar desde la tienda cuando cambian las claves.