I have a certificate mycert.pem . I got the public key of the certificate by command:
openssl x509 -pubkey -noout -in mycert.pem > pubkey.pem
How can I get the SHA256 hash of the public key?
I have a certificate mycert.pem . I got the public key of the certificate by command:
openssl x509 -pubkey -noout -in mycert.pem > pubkey.pem
How can I get the SHA256 hash of the public key?
You can use ssh-keygen. Convert file format first
ssh-keygen -i -m PKCS8 -f pubkey.pem > NEWpubkey.pem
Next get the fingerprint
ssh-keygen -lf NEWpubkey.pem
Get type inference
2048 SHA256:hYAU9plz1WZ+H+eZCushetKpeT5RXEnR8e5xsbFWRiU no comment (RSA)
The openssl -pubkey outputs the key in PEM format (even if you use -outform DER).
Assuming you have a RSA public key, you have to convert the key in DER format (binary) and then get its hash value:
openssl rsa -in pubkey.pem -pubin -outform der | openssl dgst -sha256
You can either:
generate sha256sum directly from certificate file, using this command:
openssl x509 -pubkey -noout -in <your-certificate-filename>.pem | openssl dgst -sha256
or
generate public key of your certificate using this simple command:
openssl x509 -pubkey -noout -in <your-certificate-filename>.pem > <public-key-filename>.pem
And verify it using this command:
cat <public-key-filename>.pem | sha256sum