我收到了这个签名
openssl verify cert.pem
cert.pem: C = US, O = Apple Inc., OU = Apple Certification Authority, CN = Apple Root CA
error 18 at 0 depth lookup:self signed certificate
OK
看起来不错。我得到了这个文件,但它告诉我无法使用此命令打开该文件
openssl rsautl -verify -in receipt2.hex.pkcs7 -pubin -inkey cert.pem -out verified-data.bin
unable to load Public Key
我在这里缺少什么?
答案1
cert.pem
是一个证书。证书包含公钥,但它是不是公钥。您需要从证书中提取公钥。
openssl x509 -in cert.pem -noout -pubkey -out pubkey.pem
openssl rsautl -pubin -inkey pubkey.pem …
或者,使用pkeyutl
,它有两个好处:它也适用于其他公钥方案(例如 ECDSA),并且它可以选择从证书中提取公钥。
openssl pkeyutl -certin -in cert.pem …