web-dev-qa-db-ja.com

Java Keystore PrivateKeyEntryとtrustedCertEntry

Hadoopクラスターで使用されている証明書を更新しています。現在のJKSには1つのエントリがあります。

Your keystore contains 1 entry

Alias name: myalias
Creation date: Jan 10, 2019
Entry type: PrivateKeyEntry
Certificate chain length: 1

新しい証明書から新しいキーストアを作成しようとしています:

keytool -importcert -alias myalias  -file newcertfile.crt -keystore newkeystore.jks

しかし、私はこの証明書を信頼するかどうか尋ねられます(「いいえ」と言った場合、keytoolは終了します)。

Trust this certificate? [no]:  yes

結果を見ると、PrivateKeyEntryではなく、trustedCertEntryです。

keytool -list -v -keystore newkeystore.jks
...
...
Your keystore contains 1 entry

Alias name: myalias
Creation date: Feb 20, 2019
Entry type: trustedCertEntry
...
...

ここで何が欠けていますか? TrustedCertEntryでJKSを使用するだけですか、それとも古いJKS(PrivateKeyEntryを使用)と同じようにする方法はありますか?

5
yurmix

私は最終的に私も秘密鍵を提供しなければならないことを理解しました(- link で述べたように Roshith が彼が提供したように)。

だから私は最初にpfxファイルを作成することから始めました:

openssl pkcs12 -export -out newcertbundle.pfx -inkey myprivate.key -in newcertfile.crt

そして、それをjksに変換しました:

keytool -importkeystore -srckeystore newcertbundle.pfx -srcstoretype PKCS12 -srcstorepass mypass -deststorepass mypass -destkeypass mypass -destkeystore newkeystore.jks

私が理解できなかった唯一のこと(しかし、私にとってあまり重要ではなかった)は、エイリアスの使用方法だったので、デフォルトのエイリアスを使用しました(エイリアスを指定しようとしたときに、エイリアスが存在しません。これについて説明します) ここ )。

4
yurmix