SSL私钥在哪里存储?

我的具体情况适用于Windows,但我很高兴知道这与其他实际应用有何不同。 这些子集包含我基于我的逻辑的信息,如果我错了,请纠正它们。

这是我在做什么:

  1. 在Exchange命令行pipe理程序中,我生成一个证书请求。
    一世。 此时,生成一个私钥
  2. 我批准证书颁发机构的请求。
    一世。 CA从来没有看到我的私钥。
  3. 我从CA获取证书(.cer)并将其安装到本地机器证书存储区。
    一世。 私钥自动与相应的证书合并。

在第一步:私钥当前驻留在哪里?

在第三步中:私钥是否仍然位于(1)中的相同位置,还是现在只出现在证书中?
除了导入到商店之外,如何将这个私钥与证书合并?

大多数情况下,密钥+证书都存储在registry中。 这篇微软文章涵盖了许多path,这里是关于证书位置的博客。

几个每用户密钥+证书对被存储到文件系统中。 看到

Documents and Settings\< username >\ApplicationData\Microsoft\SystemCertificates\My\Certificates Users\< username >\ApplicationData\Microsoft\SystemCertificates\My\Certificates 

如果您不想使用Exchangepipe理shell,则有许多工具可用于pipe理证书。 链接的文章提到了Certutil,您可以打开证书pipe理器控制台。

我不清楚Windows实际存储密钥和证书的详细信息,但是您可以使用OpenSSL之类的工具创build私钥,创build一个签名请求并将其转发给CA. 从CA获得证书后,您就可以将私钥和证书导入到Windows中。 通常,您可以通过将密钥和证书转换为pkcs12文件并将其导入来执行此操作。

pkcs12文件和其他一些密钥和证书可以存储在同一个registryblob或同一个文件中,但它们将始终是独立的实体,使用正确的工具可以提取它们并将它们分开。