¿Verificando la huella digital de un certificado SSL?

26

Estoy jugando con un agente de Puppet y un maestro de Puppet y he notado que la utilidad de certificado de Puppet proporciona una huella digital para la clave pública de mi agente, ya que ha solicitado que se firme:

$ puppet cert list
  "dockerduck" (SHA256) 1D:72:C5:42:A5:F4:1C:46:35:DB:65:66:B8:B8:06:28:7A:D4:40:FA:D2:D5:05:1A:8F:43:60:6C:CA:D1:FF:79

¿Cómo verifico que esta es la clave correcta?

En el agente Puppet, tomar un sha256summe da algo dramáticamente diferente:

$ sha256sum /var/lib/puppet/ssl/public_keys/dockerduck.pem
f1f1d198073c420af466ec05d3204752aaa59ebe3a2f593114da711a8897efa3

Si recuerdo correctamente, los certificados proporcionan sumas de verificación de sus claves públicas en los archivos de claves reales. ¿Cómo puedo obtener acceso a las huellas digitales de una llave?

Naftuli Kay
fuente
1
La huella digital del certificado no es el hash del archivo pem, se calcula en función de los campos específicos del certificado dispuestos en un formato y orden específicos.
Dobes Vandermeer

Respuestas:

39

La utilidad de línea de comandos OpenSSL se puede usar para inspeccionar certificados (y claves privadas, y muchas otras cosas). Para ver todo en el certificado, puede hacer:

openssl x509 -in CERT.pem -noout -text

Para obtener la huella digital SHA256, debe hacer lo siguiente:

openssl x509 -in CERT.pem -noout -sha256 -fingerprint
derobert
fuente
1
unable to load certificate 140640672884384:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: TRUSTED CERTIFICATE¿Algunas ideas?
Naftuli Kay
@NaftuliTzviKay Quizás no estén en formato PEM. ¿Cómo son los archivos? (o, ¿puede generar una prueba que no usará y publicarla en algún lugar?)
derobert
Aquí está la clave pública mencionada en la publicación original: pastebin.com/ae2Qtexc
Naftuli Kay
@NaftuliKay necesita tener su certificado en forma de formato pem.
M_AWADI
9

La mejor manera de confirmar la huella digital del agente, al menos en Puppet 3.6, es ejecutar el siguiente comando en su agente:

puppet agent --fingerprint
mpaf
fuente