ホームページ > Java > &#&チュートリアル > Java で特定の SSL 接続にカスタム証明書の信頼を設定する方法

Java で特定の SSL 接続にカスタム証明書の信頼を設定する方法

Susan Sarandon
リリース: 2024-12-18 13:48:14
オリジナル
839 人が閲覧しました

How to Set Custom Certificate Trust for Specific SSL Connections in Java?

対象の接続に対するカスタム証明書の信頼の設定

問題の説明

外部モジュールをアプリケーションに統合するには、SSL へのアクセスが必要です- 自己署名証明書を使用した安全な Web サイト。証明書の信頼性に問題があるため、既存のコードは失敗します。課題は、他の接続の信頼性を損なったり、システム全体の証明書ストアを変更したりすることなく、アプリケーションがこの特定の接続に対してのみこの自己署名証明書を受け入れることができるようにすることです。

最適なソリューション

特定の接続に対して自己署名証明書を選択的に信頼するには、カスタム SSLSocket ファクトリを作成し、確立する前に HttpsURLConnection に設定します。接続:

...
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslFactory);
conn.setMethod("POST");
...
ログイン後にコピー

SSLSocket ファクトリの作成

SSLSocket ファクトリを作成するには、次のように初期化します:

/* Load the keyStore that includes self-signed cert as a "trusted" entry. */
KeyStore keyStore = ... 
TrustManagerFactory tmf = 
  TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(keyStore);
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(null, tmf.getTrustManagers(), null);
sslFactory = ctx.getSocketFactory();
ログイン後にコピー

キー ストアのロード

自己署名証明書を「信頼できるエントリ」として含むキー ストア:

KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(trustStore, trustStorePassword);
trustStore.close();
ログイン後にコピー

代替キー ストアの読み込み方法

または、keytool を使用して PEM 形式をインポートします証明書をキーストアに保存します:

keytool -import -file selfsigned.pem -alias server -keystore server.jks
ログイン後にコピー

以上がJava で特定の SSL 接続にカスタム証明書の信頼を設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート