SSL 私钥存储在哪里?

Gar*_*ary 3 exchange ssl-certificate private-key

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

这是我在做什么:

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

第一步:私钥当前位于何处?

在第三步中:私钥是否仍位于与 (1) 中相同的位置,还是现在仅存在于证书中?
除了将其导入商店之外,您如何将此私钥与证书合并?

Zor*_*che 6

大多数情况下,密钥+证书都存储在注册表中。这个microsoft 文章涵盖了许多路径,这里有一篇关于证书位置的博客。

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

Documents and Settings\< username >\ApplicationData\Microsoft\SystemCertificates\My\Certificates
Users\< username >\ApplicationData\Microsoft\SystemCertificates\My\Certificates
Run Code Online (Sandbox Code Playgroud)

如果您不想使用 Exchange 管理外壳,可以使用许多工具来管理证书。链接的文章提到了 Certutil,你可以打开证书管理器控制台。

我不知道有关 Windows 究竟如何实际存储密钥和证书的所有细节,但您当然可以使用 OpenSSL 之类的工具创建私钥,创建签名请求并将其转发给 CA。从 CA 获得证书后,您就可以将私钥和证书导入 Windows。通常,您可以通过将密钥和证书转换为pkcs12 文件并将其导入来完成此操作。

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