keytoolまたは同等のものを使用して.JKSキーストアで秘密鍵を再生成することは可能ですか?
証明書とJKSキーストアが提供されましたが、証明書をインポートすると、CSRの生成に使用された秘密キーが削除されたようです。
新しい秘密鍵を使用して新しい鍵ストアを作成する方法はわかりますが、これはCSRまたは証明書と一致しません。
いいえ、それが非対称暗号化の要点です。公開鍵(CSRと証明書に含まれている)しか知らない場合、秘密鍵を生成することは不可能になります。
CSRまたは証明書からのみ秘密鍵を再生成できれば、証明書が発行されたエンティティになりすますことができます。
秘密鍵を紛失した場合は、新しい鍵ペアを作成し、新しいCSRを送信して、新しい証明書を取得するだけです。一部のCAは、最初の証明書の期間内に、契約の一部としてこの種のキーの再生成を無料で許可します。
編集: CSRとは何かを明確にするためだけに。
X.509証明書を申請するには、次のことを行う必要があります。
次に、この証明書を公開鍵と一致する秘密鍵と組み合わせて使用する必要があります。一部のツールは、個別のファイルを使用してこれを実行します。キーストアの秘密鍵エントリに対して証明書をインポートして戻すこともできます。
秘密鍵なしでCSRまたは証明書を持っていることは役に立ちません。新しいCSRを簡単に再作成できますが、新しいキーペアも作成する必要があります。CSRの最も重要な部分は公開鍵であり、一致する秘密鍵を持つことです。それ以外の場合は、CSRを破棄できます。
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
同じ問題が発生し(秘密鍵が誤ってキーストアから削除されました)、それを回復する方法は1つしかありませんでした。それは、キーストアファイル(* .jks)をバックアップに置き換えることです。したがって、SSLに関連するすべてのファイルを常にバックアップすることをお勧めします。キーストアで誤って何かを削除した場合は、ファイルを古いファイルに置き換えるだけです。