それらが使用されると、JSSE はこれらの設定を使用してデフォルトを構築しますX509TrustManager(JRE デフォルトをオーバーライドします)。ただし、JSSE アーキテクチャでは原則としてデフォルトのトラスト マネージャーをキーストアから構築する必要がないため、JSSE API には、デフォルトのトラスト マネージャーの構築に使用されたキーストアにアクセスする手段はありません。
プロパティを介して渡されたトラスト ストアの内容を読みたい場合は、javax.net.ssl.trustStore*自分でファイルを開く必要があります。
あなたが手に入れることができる最も近いものは、 defaultX509TrustManagerを使用したデフォルトになりますTrustManagerFactory。
編集:
詳細については、OpenJDK の実装を参照してください。
(パブリック API の一部ではない)のロジックは、 (パブリック API の一部でもありません)から取得したでsun.security.ssl.DefaultSSLContextImplを初期化することです。TrustManagerFactoryKeyStoreTrustManagerFactoryImpl
KeyStore ks = TrustManagerFactoryImpl.getCacertsKeyStore("defaultctx");
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(ks);
これは with の動作と一致していTrustManagerFactoryますtmf.init(null)。これもデフォルトのキーストアに依存していましたが、それはパブリック API に記載されています。実際、実装 ( with ) は、 (キーストア パラメーターが null の場合にも呼び出されます)tmf.init(null)に示すように、同じことを行います。TrustManagerFactoryImplengineInitgetCacertsKeyStore
どちらの場合も、KeyStore変数はクラス メンバーに格納されません。これらの初期化メソッドを使用した後にアクセスできないのは単なるローカル変数です。
結果X509TrustManagerImplには確かに信頼できる証明書のリストが含まれていますが、trustedCerts(a) プライベート メンバーであり、(b) JSSE のパブリック API の一部ではありません。
編集2:
ほとんどの場合は機能する可能性が高いが、機能することが保証されていないものが必要な場合は、この回答が役立ちます。デフォルトのトラスト ストアは必ずしも ではないcacertsことに注意してください。