0

クラスInstallCertを使用して、VMware vCenter 証明書をローカルの Java キーストアにインポートしています。

この行socket.startHandshake()は を返しますUnsupportedOperationExceptionが、クラスSavingTrustManagerはまだ証明書を正常にダウンロードしています。

次に、次のスニペットを使用して、ダウンロードした証明書をローカル キーストアに保存します。

KeyStore jsk;
... ... ..
jks.setCertificateEntry(alias, cert);
OutputStream out = new FileOutputStream("jssecacert");
jks.store(out, passphrase);
out.close();

しかし、キーストア内のすべてのエントリを一覧表示しようとすると: keytool -list -keystore jssecacerts -v、ダウンロードしたエントリを含めて 160 のエントリがあることが示されます。

キーストアが私のコードによって生成されたと確信しており、最初は空であるはずです。他の 159 件のエントリはどこから来たのか知りたいのですが?

ありがとう。

4

1 に答える 1

1

Installcert クラスによって生成された jssecacerts と、Java>jre>security>lib にある cacerts ファイルの両方のトラストストアを比較するには、KeyStoreExplorer を使用します。

Istallcert はサーバーから証明書を取得し、使用している JVM のトラストストアのコピーを作成します。次に、証明書をトラストストアのコピーに追加し、「jssecacerts」という名前を付けます。このコードを確認してください:

File file = new File("jssecacerts");
    if (file.isFile() == false) {
        char SEP = File.separatorChar;
        File dir = new File(System.getProperty("java.home") + SEP
        + "lib" + SEP + "security");
        file = new File(dir, "jssecacerts");
        if (file.isFile() == false) {
            file = new File(dir, "cacerts");

            }
    }

次に、jsscacerts の名前を cacerts に変更し、JVM の元のものを置き換えるだけです。

于 2016-01-27T15:01:38.630 に答える