【问题标题】:Use of CA certificate in Certificate creation在证书创建中使用 CA 证书
【发布时间】:2020-06-15 09:23:56
【问题描述】:

我已经阅读了关于如何创建本地 SSL 证书的article。步骤基本如下:
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 证书的目的是什么?

【问题讨论】:

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


    【解决方案1】:

    当我们在步骤 1 中创建密钥时,它是密钥对还是只是私钥?

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


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

    两者兼而有之。您需要公钥,因为它将由 CA 认证。您在用它签署 CSR 时需要私钥,以提供公钥的拥有证明。


    从 CA 创建证书时,为什么我们需要它的私钥和 ca 证书?

    同样,两者都是。您需要私钥才能签署证书。您还需要 CA 证书,以便 CA 可以从中提取签名过程中使用的信息。

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

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

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

    【讨论】:

    • 感谢您的回答,它清除了我的大部分概念。但我不太明白第三个问题的答案。申请人将 CSR 交给 CA,想从 CA 获得申请人证书。 CA 将从 CSR 中提取必要的信息,并使用自己的私钥创建带有数字签名的证书。我虽然这就是结束(这应该是错误的)。您提到“CA 签署证书可以提取签名过程中使用的信息”。您是在谈论 CA 证书以及 CA 证书(而不是 CSR)所需的信息是什么?能否提供更详细的流程?
    猜你喜欢
    • 2021-12-26
    • 2019-04-30
    • 1970-01-01
    • 2012-08-29
    • 2021-07-22
    • 2018-06-30
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多