签名 CSR
在最后这一步中,你将扮演证书颁发机构(CA)的角色,对你在上一步中创建的 CSR 进行签名。为此,你的环境中已经预先生成了一个简单的 CA 证书(ca.pem)及其对应的私钥(ca-key.pem)。
我们将使用 openssl x509 -req 命令来处理 CSR 并颁发新证书。
-req: 指定我们正在处理一个 CSR。
-in csr.pem: 输入的 CSR 文件。
-CA ca.pem: 用于签名的 CA 证书。
-CAkey ca-key.pem: 用于签名的 CA 私钥。
-out signed-cert.pem: 新签名证书的输出文件。
-days 365: 设置有效期为 365 天。
-CAcreateserial: 创建并管理一个序列号文件(ca.srl),CA 跟踪已颁发的证书需要此文件。
执行以下命令对 CSR 进行签名:
openssl x509 -req -in csr.pem -CA ca.pem -CAkey ca-key.pem -out signed-cert.pem -days 365 -CAcreateserial
你将看到确认签名成功的输出:
Certificate request self-signature ok
subject=C = US, ST = New York, L = New York City, O = MyWebApp, CN = webapp.example.com
现在,列出文件,你将看到新创建的证书 signed-cert.pem 和序列号文件 ca.srl。
ls
ca-key.pem ca.pem ca.srl cert.pem csr.pem private.pem signed-cert.pem
你可以使用 openssl x509 -in signed-cert.pem -text -noout 来检查这个新证书。你会注意到 Issuer(颁发者)现在是 CA(CN=myca.com),而 Subject(主体)是你 CSR 中的身份信息(CN=webapp.example.com)。