何时在SSL证书申请过程中生成私钥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了何时在SSL证书申请过程中生成私钥?相关的知识,希望对你有一定的参考价值。

我是SSL和证书注册世界的新手,所以请原谅我的无知。我最近的任务是通过PowerShell自动化我们的证书续订和发布流程,我正试图围绕这个过程。

我知道私钥存储在服务器端,用于加密/解密过程,但我不确定何时生成该私钥。生成CSR时是否会发生这种情况,或者仅在从CA收到并安装证书时才创建私钥?

我做了一些测试,其中我创建了自签名证书,我可以通过OpenSSL找到私钥,但我不确定它来自哪里。任何见解将不胜感激!

答案

生成CSR时是否会发生这种情况

是,在生成CSR时或之前。 CSR的关键组成部分是公钥 - 公钥实际上是构成私钥的信息的一个子集(这就是我们有时将其称为密钥对的原因)。

因此,为了生成CSR,首先需要一个密钥对。

值得注意的是,由于CSR和由此产生的证书仅包含密钥的公共部分,因此可以安全地通过无法保证隐私的渠道进行交换。

   Server                         CA
     |                             |
1. Create key-pair                 |
     |                             |    
2. Create CSR w/pub-key            |
     |                             |
3. Send CSR to CA ---------------->|
     |                             |
     |                  4. Vet ownership claims in CSR
     |                             |
     |                  5. Issue signed Certificate
     |                     signature must span the pub-key
     |                             |
     |<---------------- 6. Send Certificate back
     |                             |
7. Install signed cert             |
     |                             |
8. Decrypt traffic using priv key  |
     |                             |
     |                             |

请注意,私钥在任何时候都不会离开您的服务器 - 它不是CAT生成器,因此它必须在您生成CSR之前存在

我做了一些测试,其中我创建了自签名证书,我可以通过OpenSSL找到私钥,但我不确定它来自哪里。

值得注意的是,当您使用openssl req或IIS管理器等工具创建新的CSR或自签名证书时,除非您明确指定一个工具,否则工具会默默地为您生成密钥 - 具体来说,请参阅this related ServerFault answer

另一答案

抽象流程如下:

  • 生成公钥/私钥对。
  • 公钥和其他数据进入CertificationRequest / Certificate Signing Request。
  • CA查看提交它的CSR以及他们喜欢的任何其他内容,并拒绝它或颁发证书。
  • 私钥持有者现在可以将私钥与证书相关联。

CA有“坏”产品,其中CA生成私钥并向客户发送PFX,但它不是安全流(因为现在“太多实体”知道/知道私钥)。

如果您正在进行自签名证书,则中间的两个步骤通常合并为一个。

以上是关于何时在SSL证书申请过程中生成私钥?的主要内容,如果未能解决你的问题,请参考以下文章

OpenSSL证书生成及Mac上Apache服务器配置HTTPS(也适用centos)

如何获取https私钥

CSR:SSL证书的孵化器

腾讯云服务器导入ssl证书提示输入密码,申请时没有输入私钥

如何安装SSL证书

SSL中,公钥,私钥,证书的后缀名都是些什么