要求されたターゲットへの有効な証明書パスが見つかりません
Java 経由で HTTPS サーバーからファイルをダウンロードすると、次のエラーが発生する場合があります:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
を理解するエラー
このエラーは、クライアント/サーバー認証に問題があることを示します。 HTTPS サーバーは証明書を使用して安全な接続を確立します。ダウンロードを続行するには、クライアント (Java プログラム) がサーバーの証明書を信頼する必要があります。
考えられる原因: サーバーに自己署名証明書があります
自己署名証明書は信頼できる機関によって発行されていない。 Java のデフォルトの信頼ストアにはこれらの証明書が含まれていないため、認証エラーが発生します。
解決策
クライアント/サーバー認証を無視するには、サーバーの証明書を Javaトラストストア。方法は次のとおりです:
1.証明書を取得します:
2.証明書をトラスト ストアに追加します。
これを行うには 2 つの方法があります。
a. keytool の使用:
keytool -import -trustcacerts -alias myalias -file certificate.cer
b. -D パラメータの使用:
-Djavax.net.ssl.trustStore=mytruststore.jks
3. certificate.cer と mytruststore.jks を実際のファイル名に置き換えます。
証明書をトラスト ストアに追加した後、Java プログラムは認証エラーなしで HTTPS サーバーからファイルをダウンロードできるようになります。 .
以上がJava プログラムが「要求されたターゲットへの有効な証明書パスが見つかりません」というメッセージで HTTPS ファイルのダウンロードに失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。