526

多数の .keystore ファイルがあり、特定の CN とエイリアスを持つファイルを見つける必要があります。keytool、jarsigner、またはその他のツールでそれを行う方法はありますか? 特定の apk に署名するために特定のキーストアが使用されたかどうかを確認する方法を見つけましたが、各ファイルでエイリアスと証明書名も取得する必要があります。

4

11 に答える 11

944

次のコマンドを実行して、キーストアファイルの内容(およびエイリアス名)を一覧表示できます。

keytool -v -list -keystore .keystore

特定のエイリアスを探している場合は、次のコマンドで指定することもできます。

keytool -list -keystore .keystore -alias foo

エイリアスが見つからない場合は、例外が表示されます。

keytoolエラー:java.lang.Exception:エイリアスが存在しません

于 2012-10-15T11:08:30.997 に答える
292

すべての詳細を取得するために、romaintaz の回答に -v オプションを追加する必要がありました。

keytool -v -list -keystore <FileName>.keystore
于 2015-04-17T11:57:43.807 に答える
73

Java コードから実行できます。

try {

        File file = new File(keystore location);
        InputStream is = new FileInputStream(file);
        KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
        String password = "password";
        keystore.load(is, password.toCharArray());


        Enumeration<String> enumeration = keystore.aliases();
        while(enumeration.hasMoreElements()) {
            String alias = enumeration.nextElement();
            System.out.println("alias name: " + alias);
            Certificate certificate = keystore.getCertificate(alias);
            System.out.println(certificate.toString());

        }

    } catch (java.security.cert.CertificateException e) {
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (KeyStoreException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }finally {
        if(null != is)
            try {
                is.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    }

Certificate クラスは、キーストアに関するすべての情報を保持します。

更新 - 秘密鍵を取得

Key key = keyStore.getKey(alias, password.toCharArray());
String encodedKey = new Base64Encoder().encode(key.getEncoded());
System.out.println("key ? " + encodedKey);

@prateekこれがあなたが探しているものであることを願っています!

于 2012-10-15T11:29:44.090 に答える
63

KeyStore Explorer は、キーストアを管理するためのオープン ソースのビジュアル ツールです。

于 2014-02-18T14:13:38.113 に答える
4

Windows の場合:

keytool -v -list -keystore my_keystore | findstr my_string

参照:

CMD ディレクトリを検索してファイル内の文字列を検索する

于 2021-09-01T12:46:15.750 に答える
0

keytool -v -list -cacerts -alias cert1

これは、エイリアス名でjdk-11に追加された証明書をチェックし、それがWindowsマシンに追加されたかどうかを確認するときに機能します

于 2022-02-23T18:12:00.280 に答える