【发布时间】:2018-11-29 02:41:56
【问题描述】:
我在理解 openSSL 的签名和验证过程方面有些困难。
我有一个小的证书层次结构:根证书 => 子证书 => 最终实体证书。 我想从最终实体 CA 获得一个代码签名证书,因此创建了一个密钥对并请求了一个 CSR:
openssl genrsa -out key.pem
...
openssl genrsa -pubout -in key.pem -out key.pub.pem
...
openssl req -new -sha256 -key key.pem -out id.csr
...
我发送我的 CSR 并接收存储在 cert.pem 中的代码签名证书。 我的理解是这个证书只用于验证目的(验证签名),我的代码应该用私钥(key.pem)签名:
openssl dgst -sha256 -sign key.pem -out program.sign program
因此,我有使用 key.pem 签名的 program.sign。然后,我需要验证这个签名,考虑到我有 4 个用于路径验证的证书:root.pem、sub.pem、end.pem、cert.pem。
如何让openssl用链中的多个证书验证签名来校验?
我试过这个,但它当然不起作用,因为我只指定代码签名证书,没有链的其余部分:
openssl dgst -sha256 -verify program -signature program.sign cert.pem
undable to load key file
我错过了什么吗?
非常感谢。
【问题讨论】:
标签: openssl rsa digital-signature x509 pki