【发布时间】:2026-01-23 05:40:01
【问题描述】:
CSR 主要用于创建具有可信公钥的证书。
在创建 CSR 之前,
我们创建一个私钥
openssl genrsa -out key.pem 1024
然后使用该私钥 (key.pem) 创建 CSR(req.pem) 请求。
openssl req -new -key key.pem -out req.pem
编辑:
我看到安装了一个 docker 引擎,其中包含根证书、服务器证书和与 CSR 一起使用的私有证书
在提交 CSR 时提供私钥(key.pem 作为输入)的确切目的是什么?因为证书应该使用父私钥签名
在创建 CSR 时是否需要私钥 (key.pem) 来生成相应的公钥?
或
是否使用私钥(key.pem)加密 CSR 并将生成的签名附加到 CSR?
【问题讨论】:
-
CSR 使用您的私钥签名。由于它包含公钥,因此 CA 能够验证签名。
-
@LorinczyZsigmond 并且在从 CSR(
openssl x509 -req -days 365 -sha256 -in req.pem -CA ca.pem -CAkey ca-key.pem -CA createserial -out server-cert.pem) 创建证书的过程中,该签名被 CA 私钥的签名替换。这是从 CSR(req.pem) 到证书(server-cert.pem) 内容的唯一区别吗? -
CA 可能会更改字段、添加/删除用途等。CA 还确定证书的有效期间隔('not before'、'not after' 字段)。编辑:与 CSR 不同,证书还包含特定于颁发者的数据。
-
@LorinczyZsigmond 签名是否被替换?正如我之前的评论中所问的那样......
-
是的,或者准确地说,cert 和 csr 是不同的文件,由不同的各方(颁发者 CA 与请求者)签署。
标签: certificate ssl-certificate