ホームページ > Java > &#&チュートリアル > Java クライアントは自己署名 SSL 証明書をどのように処理できますか?

Java クライアントは自己署名 SSL 証明書をどのように処理できますか?

Susan Sarandon
リリース: 2024-12-19 13:17:09
オリジナル
330 人が閲覧しました

How Can a Java Client Handle Self-Signed SSL Certificates?

自己署名 SSL 証明書を処理する Java クライアント

Java クライアントが自己署名証明書を持つサーバーへの SSL 接続に遭遇すると、次のようなエラーで失敗する場合があります:

sun.security.validator.ValidatorException: PKIX path building failed
ログイン後にコピー

オプション1: トラストストアへの追加

信頼を確立するには、自己署名証明書を JVM トラストストアに追加します:

<JAVA_HOME>/bin/keytool -import -v -trustcacerts \
-alias server-alias -file server.cer \
-keystore cacerts.jks -keypass changeit \
-storepass changeit
ログイン後にコピー

オプション 2: 証明書の検証を無効にする (非推奨) )

次のようにして証明書の検証を無効にしますcode:

// Trust manager that does not validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[] {
    new X509TrustManager() {
        @Override
        public void checkClientTrusted(X509Certificate[] certs, String authType) {}
        @Override
        public void checkServerTrusted(X509Certificate[] certs, String authType) {}
        @Override
        public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; }
    }
};

// Install trust manager
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
ログイン後にコピー

ただし、証明書の検証を無効にすると、クライアントが中間者攻撃に対して脆弱になるため、お勧めできません。

以上がJava クライアントは自己署名 SSL 証明書をどのように処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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