Estoy tratando de entender si fijar un certificado significa esencialmente fijar la CA o si son diferentes. ¿Cómo?
El procesamiento genérico de un certificado es el siguiente:
https://
URL) aparezca donde debería estar en el certificado del servidor. Fijación de certificado es equivalente a convertir el certificado del servidor en un ancla de confianza con alcance limitado: el cliente almacena el certificado del servidor, y lo usará como el ancla de confianza cuando validando el certificado del servidor de nuevo. En la descripción anterior, esto significa que al volver al servidor, el cliente creará una cadena de longitud 1, que contiene solo el certificado del servidor, que el cliente "confía" en ese contexto porque lo recuerda exactamente.
La fijación de certificados puede ser inclusiva o exclusiva; el primero significa que el cliente aceptará el certificado del servidor recordado como un ancla de confianza además de sus otros anclajes de confianza "normales" (sus "certificados raíz"), mientras que el segundo significa que el cliente use solo el certificado anclado como ancla de confianza. El efecto general de la fijación exclusiva de certificados es que el cliente aceptará el certificado del servidor solo si es bit a bit igual al que recuerda; ningún otro certificado se consideraría aceptable.
Por lo general, cuando las personas hablan sobre la fijación, se refieren a la fijación exclusiva .
Fijación de CA es el mismo proceso superior en la cadena. El cliente recuerda un certificado de CA (que puede ser una CA "intermedia") como un ancla de confianza. Una vez más, esto puede ser inclusivo o exclusivo. La fijación exclusiva de CA significa que el navegador validará el certificado del servidor contra esa CA como ancla de confianza única; el certificado se aceptará solo si se puede construir una cadena proveniente de esa CA específica y ninguna otra.
Los puntos importantes de arriba son los siguientes:
La fijación de certificados almacena la huella digital del certificado para un sitio, de modo que (además de la verificación normal) si el certificado cambia, esto puede usarse como entrada para el proceso de validación. El certificado "fijado" no es el CA, sino el que está al final de la cadena. Puede mostrar una advertencia al usuario si, por ejemplo, un certificado se reemplaza por otro 8 meses antes del vencimiento.
Es mucho más fácil obtener un certificado fraudulento o falsificar una firma en uno que generar un certificado con el mismo módulo que uno existente. La fijación de certificados está diseñada para proporcionar cierta defensa contra la anterior.
Lea otras preguntas en las etiquetas certificates certificate-authority