我正在尝试通过以下方法创建证书请求 (CSR),我需要在其中提供私钥,我的理解是 CSR 需要/仅包含公钥信息以及有关请求者的其他详细信息,例如公司名称等等。但是如果在创建 CSR 时提取公钥并传递它会抛出以下错误,所以我想知道为什么它需要私钥,虽然我知道私钥也包含公钥,是否只是因为公钥当 key 与 key 对或其他形式的私钥一起使用时, key 是可信的?
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
证书的重点是在私钥和您之间建立关系,作为证书中的身份。
- CSR 由私钥签名并由 CA 验证(CSR 中有公钥),因此他知道您拥有该 key 对。
- 因此他离线验证您是您所说的那个人,拥有该域等,然后他用他的私钥对其签名。
- 因此,如果第三方信任他,他就可以相信证书所说的内容,即它的所有者就是它所说的人。
- 然后,如果他可以使用您的私钥通过 SSL 握手中的另一个签名确定与他交谈的对等方拥有该证书,他就知道对等方就是您。
我是一名优秀的程序员,十分优秀!