ホームページ >Java >&#&チュートリアル >JRE のトラストストアを変更する代わりに、特定の Java 接続にカスタム証明書を使用するにはどうすればよいですか?
Java での特定の接続にカスタム証明書を使用する
Java アプリケーションでは、次を使用してサーバーとの接続が確立される状況が発生する可能性があります。自己署名証明書。 JRE の認証局ストアに証明書をインポートするのは簡単な方法ですが、他の Java アプリケーションへのグローバルな影響があるため、推奨されない可能性があります。
代わりに、よりターゲットを絞った方法として、カスタム SSLSocketFactory をセットアップし、接続を開始する前に、HttpsURLConnection オブジェクトにそれを追加します。
... HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); conn.setSSLSocketFactory(sslFactory); conn.setMethod("POST"); ...
SSLSocketFactory を作成するには、最初に「信頼できる」エントリとして自己署名証明書を含む keyStore:
KeyStore keyStore = ...
次に、TrustManagerFactory を初期化します:
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
TrustManagers を使用して SSLContext を初期化します:
SSLContext ctx = SSLContext.getInstance("TLS"); ctx.init(null, tmf.getTrustManagers(), null);
最後に、 SSLSocketFactory:
sslFactory = ctx.getSocketFactory();
カスタム SSLSocketFactory を使用すると、問題の接続に対してのみ特定の証明書とその受け入れを管理できます。このアプローチにより、アプリケーションやシステム上の他の Java プログラムにグローバルな影響を与えることなく、特定の接続をターゲットにすることができます。
以上がJRE のトラストストアを変更する代わりに、特定の Java 接続にカスタム証明書を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。