在证书创建中使用CA证书

时间:2020-03-03 03:36:59

标签: ssl-certificate private-key csr certificate-authority

我已阅读article,了解如何创建本地SSL证书。基本步骤如下:
1.创建密钥对
openssl genrsa -des3 -out applicant.key 2048
2.创建证书签名请求
openssl req -new -sha256 -nodes -out applicant.csr -key applicant.key -config someCert.csr.cnf
3.使用ca.key(私钥)和cacert.pem(CA证书)为申请人创建证书。
openssl x509 -req -in applicant.csr -CA cacert.pem -CAkey ca.key -CAcreateserial -out applicant.crt -days 500 -sha256 -extfile localdomain.v3.ext

我对步骤有一些疑问。
a)当我们在步骤1中创建密钥时,它是密钥对还是私钥?
b)在步骤2中创建证书签名请求时,我们需要公钥还是私钥?
c)从CA创建证书时,为什么同时需要ca私钥和ca证书?我相信ca私钥用于数字签名,但是CA证书的目的是什么?

1 个答案:

答案 0 :(得分:0)

在步骤1中创建密钥时,是密钥对还是私钥?

applicant.key包含公共元素和私有元素。您可以使用openssl rsa -text -nout -in applicant.key来查看它们,或者使用dumpasn1或类似的内容来查看它们。


在步骤2中创建证书签名请求时,我们需要公钥还是私钥?

两者。您需要公共密钥,因为它将由CA进行认证。使用CSR签名CSR时需要私钥,以提供公钥的所有权证明。


从CA创建证书时,为什么同时需要其私钥和ca证书?

再次,两者。您需要私钥才能对证书进行签名。您还需要CA证书,以便CA可以从中提取在签名过程中使用的信息。

至少,这是CA证书的“主题”字段,用作已签名证书的“颁发者”字段。

另一个示例是CA证书中的AuthorityKeyIdentifier扩展名,其值用作申请人证书中的SubjectKeyIdentfier扩展名。

但是,CA可以自由使用它们所需的任何东西。例如,Microsoft CA将检查CA证书上的到期日期,并且不会向申请人颁发在该日期之后过期的证书(它将截断证书的有效性)。为此,它需要访问CA证书。