Weryfikowanie odcisku palca certyfikatu SSL?

26

Bawię się z agentem Puppet i mistrzem Puppet i zauważyłem, że narzędzie Puppet cert zapewnia odcisk palca dla klucza publicznego mojego agenta, ponieważ poprosił on o podpis:

$ 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

Jak sprawdzić, czy jest to właściwy klucz?

Jeśli chodzi o agenta Lalek, zrobienie sha256sumczegoś daje mi coś zupełnie innego:

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

Jeśli dobrze pamiętam, certyfikaty podają sumy kontrolne swoich kluczy publicznych w samych plikach kluczy. Jak mogę uzyskać dostęp do odcisków palców kluczy?

Naftuli Kay
źródło
1
Odcisk palca certyfikatu nie jest skrótem pliku pem, jest obliczany na podstawie określonych pól w certyfikacie ułożonych w określonym formacie i kolejności.
Dobes Vandermeer,

Odpowiedzi:

39

Za pomocą narzędzia wiersza polecenia OpenSSL można sprawdzać certyfikaty (i klucze prywatne oraz wiele innych rzeczy). Aby zobaczyć wszystko w certyfikacie, możesz:

openssl x509 -in CERT.pem -noout -text

Aby uzyskać odcisk palca SHA256, wykonaj następujące czynności:

openssl x509 -in CERT.pem -noout -sha256 -fingerprint
derobert
źródło
1
unable to load certificate 140640672884384:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: TRUSTED CERTIFICATEJakieś pomysły?
Naftuli Kay
@NaftuliTzviKay Może nie są w formacie PEM. Jak wyglądają pliki? (lub czy możesz wygenerować testowy, z którego nie będziesz korzystać i opublikować go gdzieś?)
derobert
Oto klucz publiczny, o którym mowa w oryginalnym poście: pastebin.com/ae2Qtexc
Naftuli Kay
@NaftuliKay musisz mieć swój certyfikat w formacie pem.
M_AWADI
9

Najlepszym sposobem potwierdzenia odcisku palca agenta, przynajmniej w Puppet 3.6, jest uruchomienie następującego polecenia w agencie:

puppet agent --fingerprint
mpaf
źródło