1

keytoolまたは同等のものを使用して.JKSキーストアで秘密鍵を再生成することは可能ですか?

証明書とJKSキーストアが提供されましたが、証明書をインポートすると、CSRの生成に使用された秘密キーが削除されたようです。

新しい秘密鍵を使用して新しい鍵ストアを作成する方法はわかりますが、これはCSRまたは証明書と一致しません。

4

3 に答える 3

4

いいえ、それが非対称暗号化の要点です。公開鍵(CSRと証明書に含まれている)しか知らない場合、秘密鍵を生成することは不可能になります。

CSRまたは証明書からのみ秘密鍵を再生成できれば、証明書が発行されたエンティティになりすますことができます。

秘密鍵を紛失した場合は、新しい鍵ペアを作成し、新しいCSRを送信して、新しい証明書を取得するだけです。一部のCAは、最初の証明書の期間内に、契約の一部としてこの種のキーの再生成を無料で許可します。


編集: CSRとは何かを明確にするためだけに。

X.509証明書を申請するには、次のことを行う必要があります。

  • 公開鍵と秘密鍵のペアを生成します。本質的に、公開鍵は公開鍵を取得するのに十分ではないため(少なくとも妥当な時間内に)、公開鍵を配布することができます。
  • その公開鍵とID情報を証明機関に送信します。これは、以下を使用して実行できます。
    • 証明書署名要求(CSR、PKCS#10)。これには、公開鍵と証明書に含めるデータ(たとえば、必要なサブジェクトDN)が含まれます。証明書のデータと非常によく似ていますが、このデータは主にCAが要求自体を識別するために使用する必要があります。これは、CAが適切に仕事をしている場合、CSRを盲目的に証明書に変えるだけでなく、証明書に何を入れたかを確認する必要があるためです。CSR自体は、証明書の公開鍵と一致する秘密鍵を使用して署名されます。これは、自己署名X.509証明書(発行者情報と有効期限なし)と実質的に非常に似ていますが、1つではありません。
    • ブラウザ内証明書アプリケーション用のSPKACまたはCRMF。
  • 次に、CAはこのCSR(または同等のもの)を取得し、このプロセスの外部で必要な検証を行って、証明書に埋め込みたい情報を精査し、証明書を発行します(独自の秘密鍵で署名します)。これは、公開鍵(CSRから抽出​​されたもの)と証明書に埋め込まれている情報(たとえば、名前やこの証明書の対象となるドメイン名)の間のバインドを効果的に保証します。この証明書が返送されます。

次に、この証明書を公開鍵と一致する秘密鍵と組み合わせて使用​​する必要があります。一部のツールは、個別のファイルを使用してこれを実行します。キーストアの秘密鍵エントリに対して証明書をインポートして戻すこともできます。

秘密鍵なしでCSRまたは証明書を持っていることは役に立ちません。新しいCSRを簡単に再作成できますが、新しいキーペアも作成する必要があります。CSRの最も重要な部分は公開鍵であり、一致する秘密鍵を持つことです。それ以外の場合は、CSRを破棄できます。

于 2012-08-23T15:39:36.283 に答える
0

keytoolまたは同等のものを使用して.JKSキーストアで秘密鍵を再生成することは可能ですか?

はい。ただし、秘密鍵とCSRを再生成します。CSRはCAに送信され、そこで新しい公開鍵が提供されます。

次のコマンドを使用して、いつでもキーストアに再インポートできます。

keytool.exe" -import -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -file .\certificate.cer

新しいJDKリリースの両方のパスに証明書もインポートするようにしてください。

C:\ Program Files \ Java \ jdk1.6.0_31

新しいリリースでは、別のJREもデプロイされます。

C:\ Program Files \ Java \ jre6

そうしないと、ログに次の例外が発生する可能性があります。

Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

秘密鍵とCSRを再生成するには、次のコマンドを使用できます。

$ openssl req -new -newkey rsa:2048  -nodes -keyout private.key -out signing request.csr -config openssl.conf
于 2012-08-23T15:26:29.203 に答える
0

同じ問題が発生し(秘密鍵が誤ってキーストアから削除されました)、それを回復する方法は1つしかありませんでした。それは、キーストアファイル(* .jks)をバックアップに置き換えることです。したがって、SSLに関連するすべてのファイルを常にバックアップすることをお勧めします。キーストアで誤って何かを削除した場合は、ファイルを古いファイルに置き換えるだけです。

于 2016-01-27T12:58:39.517 に答える