3

keypass のない秘密鍵を含む、storepass のない JKS キーストアがあります。

  • このストアとこのキーを使用して、たとえば(空のキーパスを許可しない) を使用して対話的に署名することはできません。jarsigner
  • すべての自動化は、ストアパスまたはキーパス、またはその両方を要求することによって失敗します。

しかし、秘密鍵キーストアにあります。

を使用してキーを抽出する試みはkeytoolすべて失敗し、キーまたはキーストアをパスワードで保護する試みもすべてパスレスのために失敗しました。キーストアを操作する GUI やその他のツールについても同じことが言えます。これは、ストアパスレスストアのキーパスレスキーがサポートされていないか、サポートされていないためだと思います。

しかし、java.security.KeyStore名前空間または他の場所に、Java コードを使用して秘密鍵をエクスポートできるコードがあると思います。私はこれについての経験がまったくないので、誰かが確かに知っていますか?もしそうなら、私を正しい方向に向けることができますか?

4

1 に答える 1

1

KeyStoreここで、秘密鍵のエクスポートに使用する Java コードを見つけることができます

パスワードを「持っていない」と言っている意味がよくわかりません。JKS キー ストアには、キー ストアのパスワードと、秘密鍵と秘密鍵のエントリごとにパスワードが必要です。ただし、このパスワードは空の文字列にすることができます。それが意味する場合は、次のnew char[0]ようにパスワードとして使用します。

KeyStore keys = KeyStore.getInstance("JKS");
 /* You don't actually need the password to open the store. */
try (FileInputStream is = new FileInputStream("identity.jks")) {
  keys.load(is, null);
}
char[] password = new char[0];
/* Continue with example from linked answer. */
...

これらの引数を指定しないとコマンド ライン ツールは動作しませんが、空の文字列を指定してみましたか? すなわち、-storepass ""?ストア自体または個々のキー エントリのパスワードを変更して、パスワードが空ではなくなり、ツールが文句を言わないようにすることもできます。

于 2012-11-10T16:13:40.107 に答える