【发布时间】:2019-08-05 10:41:17
【问题描述】:
我目前正在处理 x509 证书。 我想要做的是,考虑拥有自己的证书和证书颁发机构的用户:
- 使用用户的公钥生成证书签名请求。
- 使用 CA 的私钥签署此 CSR。
如果我知道用户的私钥和 CA 的私钥,我就知道该怎么做:使用X509_REQ_set_pubkey(req, user_private_key) 和X509_REQ_sign(req, CA_private_key, EVP_sha256())。
但是,用户不会知道 CA 的私钥,CA 也不会知道用户的私钥。因此,用户必须使用X509_REQ_set_pubkey 函数,然后以某种方式存储 CSR 并将其发送给 CA。
这就是我遇到的问题:用户可以通过 PEM_write_X509_REQ 函数将其 CSR 写入文件,但 CA 无法通过 PEM_read_X509_REQ 函数读取它,因为 CSR 是未签名的。
有人知道实现我想要的方法吗?
提前致谢!
--- 编辑---
其实这个问题有点太长了,可以改写为:“什么是C库相当于OpenSSL的命令openssl req -new -key key.pem -out csr.pem?”
【问题讨论】: