キーストアから情報を取得するために KeyStore を使用しようとしています。次のコマンドを使用してキーストアを生成しました。
keytool -genkey -alias server -keyalg RSA -keystore server.keystore -validity 365
このページを取った。
その情報keytool -list -v -keystore server.keystore
を確認すると、次のようになります。
エイリアス名: サーバー
作成日: 2014 年 4 月 30 日
エントリの種類: PrivateKeyEntry
証明書チェーンの長さ: 1
証明書[1]:
(その他の情報はこちら)
このコマンドを使用すると、次のkeytool -list -keystore server.keystore -alias server
ようになります。
サーバー、2014 年 4 月 30 日、PrivateKeyEntry、証明書の指紋 (SHA1): 28:65:5B:0C:B3:3C:C9:AA:F1:7C:CE:91:23:77:DD:0D:F8:54 :70:B9
今、私のJavaコード:
keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(getClass().getResourceAsStream(KEYSTORE_FILE_PATH), "myPass".toCharArray());
keyStore.getCertificate("server").getPublicKey().getEncoded(); //here I get a null pointer exception - keystore.getCertificate("server") returns null.
実行すると、 EmptyEnumerationkeyStore.aliases()
が返されます。
アプリケーションはmaven、Java ee 7を使用しており、キーストアファイルをアプリケーションのリソースフォルダーにコピーしました。KEYSTORE_FILE_PATH の値は「/server.keystore」です。
ありがとう。