Por lo tanto, estoy implementando la fijación de certificados en iOS y se recomendó que verifiquemos la cadena de certificados utilizando valores hash de clave pública.
La razón de esto radica en el hecho de que se nos dijo que la renovación del certificado del servidor mantuvo la misma clave pública. Como tal, el certificado en el servidor podría renovarse cuando expirara, y dicha renovación no tendría ningún impacto en la aplicación.
IOW, no necesitaría actualizar la aplicación con un nuevo certificado.
Tenga en cuenta que los certificados en cuestión están firmados por una CA pública (Digicert).
Actualmente, solucionamos el problema fijando el certificado intermedio que firmó el certificado de hoja (mayor vida útil). Igualmente, es algo menos seguro que sujetar a la hoja.
Sin embargo, he encontrado algunos comentarios que implican que renovar un certificado de hoja crea una nueva clave pública. Particularmente si esa renovación se realiza generando una nueva CSR.
Entonces, ¿cuál es?
O para reiterar la pregunta:
Cuando instalé certificados en un servidor, normalmente lo hago creando un CSR de renovación y entregándolo a la CA. Cuando la CA me dé un nuevo certificado (renovado) y lo instale, ¿tendrá la misma clave pública que el certificado anterior?
Si la respuesta es siempre: sí, entonces estoy bien. Si la respuesta es no, entonces necesito hacer otra cosa.
Y si la respuesta es un "tal vez" definitivo, entonces estoy prácticamente en el mismo barco que un no.