Esto no es para "certificados por encima de la entidad final" sino para "certificados raíz" solamente.
En pure X.509 , no existe tal cosa como un "certificado raíz". Hay certificados y hay anclajes de confianza . Un certificado contiene una clave pública, el nombre de la entidad que posee esa clave y está firmada por otra entidad (una "autoridad de certificación superior"). Este proceso de firma debe comenzar en algún lugar, y ese lugar es un "ancla de confianza". Un ancla de confianza es un nombre y una clave pública.
X.509 no especifica cómo una entidad debe codificar anclajes de confianza, ya que los anclajes de confianza son algo que se conoce como a priori , no algo que se debe intercambiar a través de la red. Sin embargo, un método tradicional para almacenar anclajes de confianza es utilizar el mismo formato que los certificados. Un certificado contiene, entre otras cosas, un campo no opcional para una firma de alguna CA superior. En lugar de definir un nuevo formato para un ancla de confianza, la Tradición es llenar el "campo de firma" con una autofirma. Así nace un certificado raíz : un ancla de confianza codificada como un certificado autofirmado.
¡Pero esa autofirma no tiene sentido! No tiene ningún valor de seguridad alguno. En consecuencia, nadie lo verifica (*). Por lo tanto, no hay ningún problema relacionado con su uso de una función hash que, de otro modo, se considere con cierta sospecha.
(*) Algunos sistemas comprueban heurísticamente esa firma porque los certificados autofirmados pueden solo ser utilizados como raíz, no como cualquier otra cosa. Pero esto no es una característica de seguridad; esto es para conveniencia de la interfaz de usuario, sin depender de la seguridad de esa firma. Por lo tanto, no hay problema con SHA-1 o, pase lo que pase, MD5 o MD2.