ホームページ > Java > &#&チュートリアル > ## HTTPS Web サービスにアクセスすると、Java クライアントで「PKIX パスの構築に失敗しました」というエラーが発生するのはなぜですか?

## HTTPS Web サービスにアクセスすると、Java クライアントで「PKIX パスの構築に失敗しました」というエラーが発生するのはなぜですか?

Barbara Streisand
リリース: 2024-10-26 17:52:03
オリジナル
467 人が閲覧しました

## Why does my Java client get a

PKIX パスの構築に失敗しました: 要求されたターゲットへの有効な証明書パスが見つかりません

質問:

Java クライアントを使用して特定の HTTPS Web サービスにアクセスしようとすると、次の例外が発生します:

java.lang.RuntimeException: PKIX path building failed: unable to find valid certification path to requested target
ログイン後にコピー

回答:

この例外は、サーバーによって提示された証明書チェーンの問題のため、Java クライアントは Web サービスとの安全な接続を確立できません。

考えられる解決策:

  1. トラスト ストアの構成:

    クライアントのトラスト ストアに必要な証明書がインストールされていない可能性があります。これを解決するには、システム プロパティを設定して、トラスト ストアへのパスとそのパスワードを指定します:

    <code class="java">System.setProperty("javax.net.ssl.trustStore", "clientTrustStore.key");
    System.setProperty("javax.net.ssl.trustStorePassword", "password");</code>
    ログイン後にコピー
  2. サーバー証明書のインポート:

    クライアントの信頼ストアにサーバーの証明書が含まれていない場合は、手動でインポートします。次の手順に従ってください:

    • openssl などのツールを使用して、サーバーの証明書を PEM 形式 (certificate.crt など) でエクスポートします。
    • PEM ファイルをバイナリ X に変換します.509 証明書ファイル (例:certificate.der):

      <code class="shell">openssl x509 -in certificate.pem -out certificate.der -outform DER</code>
      ログイン後にコピー
    • keytool ユーティリティを使用して DER ファイルをクライアントの信頼ストアにインポートします:

      <code class="shell">keytool -import -alias server_cert -file certificate.der -keystore clientTrustStore.key</code>
      ログイン後にコピー
  3. Java SSL 構成の更新:

    Java SSL 構成が正しく設定されていることを確認します。たとえば、~/.java/jre/lib/security/jssecacerts を変更するか、次のコマンドを使用します:

    <code class="shell">keytool -import -alias server_cert -file certificate.der -keystore cacerts</code>
    ログイン後にコピー
  4. SSL 証明書検証を無効にします (非推奨):

    一時的な措置として、SSL 証明書の検証を無効にすることができますが、これはセキュリティ上の理由からお勧めできません。

    <code class="java">HttpsURLConnection.setDefaultHostnameVerifier((hostname, session) -> true);</code>
    ログイン後にコピー
  5. 取得別の証明書:

    Web サービスに特定の証明書が必要な場合は、その証明書を取得し、クライアントの信頼ストアにインストールします。

以上が## HTTPS Web サービスにアクセスすると、Java クライアントで「PKIX パスの構築に失敗しました」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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