我的具体情况适用于 Windows,但我很高兴知道这与其他实际应用程序有何不同。子集包含我基于的逻辑的信息,如果我有误,请纠正。
这是我正在做的事情:
- 从 Exchange 命令行管理程序中,我生成一个证书请求。i
. 此时,生成一个私钥。 - 我批准证书颁发机构的请求。i
. CA 永远看不到我的私钥。 - 我从CA获取证书(.cer)并将其安装到本地机器证书存储区。i
.私钥会自动与相应的证书合并。
第一步:私钥当前位于哪里?
第三步:私钥是否仍位于 (1) 中的位置,还是现在仅存在于证书中?
除了将其导入存储区外,如何将此私钥与证书合并?
答案1
大多数情况下,密钥+证书都存储在注册表中。这微软文章涵盖了许多路径,这里有一个关于证书位置。
一些每个用户的密钥+证书对被存储在文件系统中。参见
Documents and Settings\< username >\ApplicationData\Microsoft\SystemCertificates\My\Certificates
Users\< username >\ApplicationData\Microsoft\SystemCertificates\My\Certificates
如果您不想使用 Exchange 管理外壳,则有许多工具可以管理证书。链接的文章提到了 Certutil,您可以打开证书管理器安慰。
我不知道 Windows 究竟如何物理存储密钥和证书,但您当然可以使用 OpenSSL 等工具创建私钥,创建签名请求并将其转发给 CA。从 CA 获得证书后,您就可以将私钥和证书导入 Windows。通常,您可以通过将密钥和证书转换为pkcs12 文件并导入它。
pkcs12 文件和其他一些文件、密钥和证书可能存储在同一个注册表 blob 或同一个文件中,但它们始终是单独的实体,使用正确的工具您将能够提取它们并将它们分离。