1

以下の Java コードで NullPointerException を引き起こしている Base-64 でエンコードされた X.509 (.CER) 証明書があります。それを引き起こす行はPublicKey pubKey = pubCert.getPublicKey();

myfile.keystore に「xyz」証明書があることを確認する方法はありますか?

final FileInputStream keyFile = new FileInputStream(filePath
                    + "myfile.keystore");
final KeyStore keyStore = KeyStore.getInstance("JKS");
String storepass = "mypass";
keyStore.load(keyFile, storepass.toCharArray());
Certificate pubCert = keyStore.getCertificate("xyz");
PublicKey pubKey = pubCert.getPublicKey();
4

4 に答える 4

1

キーストアがクラスパス上にあることを確認できますか?、

上記のように、keytool -list -v -keystore .jksを実行すると、キーストアにインストールされている3つの証明書が表示されます。

キーストアに証明書が表示されていてもエラーが発生する場合は、証明書が正しくチェーンされていないことが原因である可能性があります。過去にその問題が発生しました。それでも問題が発生する場合は、上記のコマンドの出力を貼り付けてください。問題のトラブルシューティングに役立ちます。

ありがとう

于 2013-02-01T01:35:26.350 に答える
1

keytoolJRE または JDK の bin ディレクトリにあるはずのコマンドを試してください。以下の出力を参照してください。

@raspbmc:~$ /opt/jdk1.8.0/bin/keytool  -list -help
keytool -list [OPTION]...

Lists entries in a keystore

Options:

 -rfc                            output in RFC style
 -alias <alias>                  alias name of the entry to process
 -keystore <keystore>            keystore name
 -storepass <arg>                keystore password
 -storetype <storetype>          keystore type
 -providername <providername>    provider name
 -providerclass <providerclass>  provider class name
 -providerarg <arg>              provider argument
 -providerpath <pathlist>        provider classpath
 -v                              verbose output
 -protected                      password through protected mechanism

Use "keytool -help" for all available commands

参照:

http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/keytool.html

于 2013-02-01T00:31:19.980 に答える
0

この行を編集

公開鍵 pubKey = pubCert.getPublicKey();

公開鍵 pubKey = keyStore.getPublicKey();

于 2015-03-11T06:36:28.223 に答える
0

Eclipse プラグインなどのツールでキーストアを開くか、http://jxplorer.org/downloads/index.htmlを使用します

于 2013-02-01T00:28:36.870 に答える