web-dev-qa-db-ja.com

証明書の秘密鍵はどこにありますか

GoGaddyから証明書を取得しました。 2つのファイルが含まれている.Zipファイルで提供されていました。

「certificate.p7b」と「cetificate.crt」

両方をインストールしましたが、いずれかの秘密鍵を検索しようとすると、NULLが返されます。つまり、秘密鍵がありません。

もちろん、これはすべて、Azure Webサイト用の証明書をインストールしようとする大きな問題の一部であり、.crtファイルを取得しないため、.pfxにエクスポートする必要があります。

ちなみに、私は仕事用のラップトップを使用しています。このラップトップには、いくつかの証明書がプリインストールされており、それらすべてに秘密キーがあります。これは私が秘密鍵を検索するために使用するコードです:

X509Store store = new X509Store(StoreName.My);

store.Open(OpenFlags.MaxAllowed);

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

WHERE ISプライベートキーとそれを取得するにはどうすればよいですか?

12
Ostati

あなたはすでにそれを持っています。このプロセスで最初に行ったのは、鍵ペアを生成することでした。次に、キーペアからCSRを生成し、CAによって署名されました。これで、署名された証明書があり、元のキーペアが残っています。

13
user207421

証明書を注文するときに、CAにキーペアを作成するかどうかを尋ねられる場合がありますORローカルでキーを生成します。要求されなかった場合(または2番目のオプションを選択した場合) )、ブラウザがキーを生成して内部に保存します。次に、証明書リクエストをCAに渡し、CAから証明書が送信されます。

ブラウザーにはまだ秘密鍵があります。その場合、いくつかのオプションがあります。(1)証明書要求の作成に使用したのと同じブラウザを使用して、指示に従ってCAのサイトにアクセスします。これは、CAがそうするように指示した場合に機能し、(2)CAは、あなたのような場合に証明書の再発行を1回無料で提供します。 r-issueをリクエストできます。

ただし、一般に、すべての指示を注意深く読み、理解していない場合は先に進まないでください。鍵がローカルで生成された場合は、秘密鍵を安全な場所に保存するように求められた可能性があります。あなたがこれをしなかった場合-あなたが非難するのはあなたです。