我对SSL和证书注册世界完全陌生,所以请原谅我的无知。我最近的任务是通过PowerShell自动执行证书更新和颁发过程,而我正在设法将精力全盘绕在该过程上。
我知道私钥存储在服务器端,用于加密/解密过程,但是我不确定何时生成私钥。生成CSR时会发生这种情况吗,还是仅当从CA接收并安装了证书时才创建私钥?
我已经进行了一些测试,其中创建了自签名证书,并且能够通过OpenSSL找到私钥,但是我不确定它的来源。任何见识将不胜感激!
答案 0 :(得分:2)
生成CSR时会发生这种情况吗
生成CSR的时间是 还是 。 CSR的关键部分是公钥-公钥实际上是构成私钥的信息的子集(这就是为什么我们有时称它为“ 密钥对)。
因此,为了生成CSR,首先需要一个密钥对。
值得注意的是,由于CSR和生成的证书仅包含密钥的 public 部分,因此可以在无法保证隐私的渠道上进行安全交换。
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 |
| |
| |
请注意,私钥绝不会离开您的服务器-它不是CA为您生成的内容,因此它必须在生成CSR之前存在
我已经进行了一些测试,其中创建了自签名证书,并且能够通过OpenSSL找到私钥,但是我不确定它来自何方。
值得一提的是,当您使用openssl req
之类的工具或IIS管理器创建新的CSR或自签名证书时,除非您为IIS明确指定一个密钥,否则这些工具会为您静默生成密钥。 this related ServerFault answer
答案 1 :(得分:0)
抽象流程是这样的:
在某些“不良”产品中,CA会生成私钥并向客户发送PFX,但这不是安全流程(因为现在“太多实体”知道/已经知道了私钥)。 / p>
如果您正在执行自签名证书,则通常将中间的两个步骤合并为一个。