如何获取Fiddler根证书对应的openssl hash

How to get the openssl hash corresponding to Fiddler root certificate

我正在使用 OpenSsl for windows
我想获取与我从以下位置下载的 Fiddler 根证书关联的证书哈希:
http://ipv4.fiddler:8888/

所以我从命令行执行:

openssl x509 -hash -noout -in  FiddlerRoot.cer

但我得到的是这个错误,而不是得到 8 个字符长的字母数字散列:

unable to load certificate
15176:error:0906D06C:PEM routines:PEM_read_bio:no start line:./crypto/pem/pem_lib.c:647:Expecting: TRUSTED CERTIFICATE

该消息似乎与 PEM(隐私增强邮件)有关,但 Fiddler 的证书没有 PEM,我不需要它,因为我只希望证书“确保远程计算机的身份”。
也许我搞错了,散列只是用于其他目的?

该命令确实适用于我在 /system/etc/security/cacerts/00673b5b.0 从 Android 中提取的其他证书。 returns 00673b5b.
我在记事本中打开了两个证书来比较它们,并注意到来自 Android 的证书是可读格式并且有一个 PEM 部分,而 FiddlerRoot.cer 是二进制的并且没有 PEM,所以它可能有一些事情要做。

请注意,证书哈希与文件的 CRC32 或其他文件哈希不同,而是与 SSL 相关的东西(我已经测试了文件的哈希是否与 SSL 哈希匹配,但没有)。

我需要证书哈希的原因是因为我认为 Android 要求证书文件以哈希和“.0”扩展名命名:[CertHash].0
并且在“用户”商店的 Android 中安装证书对我不起作用,它必须在“系统”商店中。

有人可以提供 way/command 来获得 FiddlerRoot.cer 哈希吗?
还是我误会了 Android 在“系统”商店中安装 FiddlerRoot.cer 的命名要求?
有没有其他方法可以在不计算证书哈希的情况下在“系统”存储中安装 FiddlerRoot.cer? 请注意,在 Android 的用户界面中,安装证书会转到“用户”存储区,而不是“系统”。

PEM 不仅适用于电子邮件,它还是一种文件格式 (see wikipedia)。

FiddlerRoot.cer必须先转换成.pem格式才能计算hash:

openssl x509 -inform der -in FiddlerRoot.cer -outform PEM -out FiddlerRoot.pem

然后您终于可以使用以下命令获取哈希:

openssl x509 -hash -noout -in  FiddlerRoot.pem