web-dev-qa-db-ja.com

既存のJavaキーストア(.jks)ファイルをJavaインストールにインポートするにはどうすればよいですか?

そのため、LDAPに問題があります。うまくいけばうまくいく統合テストケースがありますが、現在SSLハンドシェイクでLDAPSセキュリティの問題に直面しています。

Apache Directory Studioを使用してLDAPSに接続でき、キーストアがファイル「permanent.jks」にダウンロードされました。

大丈夫ですが、JREを使用してEclipseにある統合テストが、このキーストアを使用してLDAPサーバーに接続できるようにしたいと思います。

このキーストアを使用して、独自に使用するためにJREにインポートするにはどうすればよいですか?

34
MetroidFan2002

OK、だからここに私のプロセスがありました:

keytool -list -v -keystore permanent.jks-エイリアスを取得しました。

keytool -export -alias alias_name -file certificate_name -keystore permanent.jks-インポートする証明書を取得しました。

次に、keytoolでインポートできます。

keytool -import -alias alias_name -file certificate_name -keystore keystore location

@Christian Bongiornoが言うように、エイリアスはキーストアに既に存在することはできません。

42
MetroidFan2002

あるキーストアから別のキーストアにすべてのエイリアスを一括インポートできます。

keytool -importkeystore -srckeystore source.jks -destkeystore dest.jks
27
qwertzguy

キーストアをロードするには、キーストアのタイプ(おそらくjceks)を伝え、入力ストリームとパスワードを提供する必要があります。その後、次のようにロードできます。

KeyStore ks  = KeyStore.getInstance(TYPE_OF_KEYSTORE);
ks.load(new FileInputStream(PATH_TO_KEYSTORE), PASSWORD);

これによりKeyStoreExceptionがスローされる可能性があるため、必要に応じてtryブロックで囲むか、再スローできます。キーストアには複数のキーを含めることができるため、エイリアスを使用してキーを検索する必要があることに注意してください。対称キーの例を次に示します。

SecretKeyEntry entry = (KeyStore.SecretKeyEntry)ks.getEntry(SOME_ALIAS,new KeyStore.PasswordProtection(SOME_PASSWORD));
SecretKey someKey = entry.getSecretKey();
26
Paul Sanwald