【发布时间】:2018-08-28 03:39:36
【问题描述】:
我有一个证书 mycert.pem 。我通过命令得到了证书的公钥:
openssl x509 -pubkey -noout -in mycert.pem > pubkey.pem
如何获取公钥的 SHA256 哈希?
【问题讨论】:
-
如果公钥不在
.pem文件中,请参阅stackoverflow.com/questions/9607295/… 获取公钥的SHA256。
我有一个证书 mycert.pem 。我通过命令得到了证书的公钥:
openssl x509 -pubkey -noout -in mycert.pem > pubkey.pem
如何获取公钥的 SHA256 哈希?
【问题讨论】:
.pem 文件中,请参阅stackoverflow.com/questions/9607295/… 获取公钥的SHA256。
openssl -pubkey 以 PEM 格式输出密钥(即使您使用 -outform DER)。
假设您有一个 RSA 公钥,您必须将密钥转换为 DER 格式(二进制),然后获取其哈希值:
openssl rsa -in pubkey.pem -pubin -outform der | openssl dgst -sha256
【讨论】:
pubkey.pem 的同一文件夹中执行了该命令吗?
routines:PEM_read_bio:no start line:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-22/libressl/crypto/pem/pem_lib.c:704
openssl x509 -pubkey -noout -in mycert.pem 命令不起作用。请修复您的证书并就我发布的命令提供反馈,
您可以使用 ssh-keygen。先转换文件格式
ssh-keygen -i -m PKCS8 -f pubkey.pem > NEWpubkey.pem
接下来获取指纹
ssh-keygen -lf NEWpubkey.pem
获取类型推断
2048 SHA256:hYAU9plz1WZ+H+eZCushetKpeT5RXEnR8e5xsbFWRiU 无注释 (RSA)
【讨论】:
您可以任一:
使用以下命令直接从证书文件生成sha256sum:
openssl x509 -pubkey -noout -in <your-certificate-filename>.pem | openssl dgst -sha256
或
使用这个简单的命令生成证书的公钥:
openssl x509 -pubkey -noout -in <your-certificate-filename>.pem > <public-key-filename>.pem
并使用以下命令进行验证:
cat <public-key-filename>.pem | sha256sum
【讨论】: