为什么我必须从私钥创建证书申请(CSR)?

时间:2015-08-12 01:11:35

标签: ssl openssl certificate private-key csr

我正在尝试使用以下方法创建证书请求(CSR),我需要提供私钥,我的理解是CSR需要/仅包含公钥信息以及有关请求者的其他详细信息,如公司名称但是,如果提取公钥并在创建CSR时传递它会抛出以下错误,所以我想知道为什么它需要私钥,虽然我理解私钥也包含公钥,是不是因为公众如果使用密钥对或其他形式的私钥,密钥是可信的吗?

openssl genrsa -out ~/domain.com.ssl/domain.com.key 2048

openssl req -new -sha256 -key ~/domain.com.ssl/domain.com.key -out ~/domain.com.ssl/domain.com.csr

尝试使用公钥生成:

openssl rsa -in  domain.com.key.pem -pubout domain.publickey

openssl req -new -sha256 -key domain.publickey -out cert.csr

unable to load Private Key
140258108909384:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: ANY PRIVATE KEY

1 个答案:

答案 0 :(得分:6)

证书的重点是在私钥和您之间建立关系作为证书中的身份。

  • CSR由私钥签名并由CA验证(使用CSR中的公钥),因此他知道您拥有该密钥对。
  • 因此,他离线验证您是您所说的人,拥有该域名等,然后使用他的私钥对其进行签名。
  • 那么,如果第三方信任他,,他可以信任证书所说的内容,即其所有者是谁所说的。
  • 然后,如果他能够通过使用您私钥的SSL握手中的另一个签名来确定他正在与之通话的同伴拥有该证书,那么他就知道对等人就是您。