Verificando a impressão digital de um certificado SSL?

26

Estou brincando com um agente Puppet e um mestre Puppet e notei que o utilitário de certificação Puppet fornece uma impressão digital para a chave pública do meu agente, pois ela solicitou a assinatura:

$ 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

Como faço para verificar se essa é a chave certa?

No agente Puppet, pegar um sha256summe dá algo dramaticamente diferente:

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

Se bem me lembro, os certificados fornecem somas de verificação de suas chaves públicas nos próprios arquivos de chaves. Como posso obter acesso a uma impressão digital de chaves?

Naftuli Kay
fonte
11
A impressão digital do certificado não é o hash do arquivo pem, é calculada com base em campos específicos do certificado organizados em um formato e ordem específicos.
Dobes Vandermeer

Respostas:

39

O utilitário de linha de comando OpenSSL pode ser usado para inspecionar certificados (e chaves privadas e muitas outras coisas). Para ver tudo no certificado, você pode:

openssl x509 -in CERT.pem -noout -text

Para obter a impressão digital SHA256, faça:

openssl x509 -in CERT.pem -noout -sha256 -fingerprint
derobert
fonte
11
unable to load certificate 140640672884384:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: TRUSTED CERTIFICATEAlguma ideia?
Naftuli Kay 03/07
@NaftuliTzviKay Talvez eles não estejam no formato PEM. Como são os arquivos? (ou, você pode gerar um teste que você não vai usar, e postá-lo em algum lugar?)
derobert
Aqui está a chave pública mencionada na postagem original: pastebin.com/ae2Qtexc
Naftuli Kay
@NaftuliKay, você precisa ter seu certificado no formato pem.
M_AWADI 18/01
9

A melhor maneira de confirmar a impressão digital do agente, pelo menos no Puppet 3.6, é executar o seguinte comando no seu agente:

puppet agent --fingerprint
mpaf
fonte