12

我刚刚从 GoGaddy 获得了证书。它以 .ZIP 文件的形式出现,其中包含两个文件:

“证书.p7b”和“证书.crt”

我已经安装了它们,但是当我尝试在其中任何一个上查找私钥时,我得到 NULL,这意味着它们没有私钥。

当然,所有这些都是更大问题的一部分,我正在尝试为 AZURE 网站安装证书并且它不需要 .crt 文件,所以我需要将其导出到 .pfx

顺便说一句,我在一台工作笔记本电脑上,它有一些预装的证书,而且它们都有私钥。这是我用来查找私钥的代码:

X509Store store = new X509Store(StoreName.My);

store.Open(OpenFlags.MaxAllowed);

foreach (var certin store.Certificates)
{
    var pk = cert.PrivateKey;
}

私钥在哪里,我如何获得它?

4

2 回答 2

13

你已经有了。您在此过程中所做的第一件事是生成密钥对。然后你从密钥对生成了一个 CSR,然后你得到了 CA 的签名,现在你有一个签名的证书,你仍然有原始的密钥对。

于 2013-08-31T00:17:02.433 回答
5

当您订购证书时,有时会询问您是否希望 CA 为您创建密钥对,或者您将在本地生成密钥。如果您没有被询问(或选择了第二个选项),则浏览器会生成一个密钥并将其存储在内部。然后您将证书请求传递给 CA,他们将证书发送给您。

您的浏览器中仍然有私钥。那么有几个选项:(1) 使用您用来创建证书请求的同一浏览器按照他们的说明访问 CA 的站点。当 CA 指示您这样做时,这将起作用,并且 (2) CA 为像您这样的情况提供一次免费的证书重新颁发。您可以请求 r-issue。

但总的来说,您必须仔细阅读所有说明,如果您不理解它们,请不要继续进行。如果密钥是在本地生成的,那么您可以将私钥保存在安全的地方。如果你没有这样做 - 你是罪魁祸首。

于 2013-08-31T07:11:12.507 回答