web-dev-qa-db-ja.com

SSLハンドシェイク例外:リクエストされたターゲットへの有効な証明書パスが見つかりません

Webユーザーがコースの支払いを行えるように、サードパーティの支払いサービスを使用しています。ただし、支払いが完了すると、payuはサイトに接続してIPNを実行しようとします。ただし、次のエラーが発生します。

javax.net.ssl.SSLHandshakeException: Sun.security.validator.ValidatorException: PKIX     path building failed:
Sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid     certification path to requested target

私たちの証明書は完全に正しく、ゼロに近づいているので、私はそれらのサービスがルートCA証明書をJava trustoreにインストールする必要があると考えているだけです。これは正しいですか。それとも他に何か不足していますか? ?

1
user1658296

このサイトの信頼チェーンは次のとおりです。

[0] /CN=www.vitalityinstitute.co.za
[1] /CN=Entrust Certification Authority - L1K
[2] /CN=Entrust Root Certification Authority - G2
[R] /OU=(c) 2006 Entrust, Inc./CN=Entrust Root Certification Authority

最初の3つの証明書はサーバーによって送信され、最後の1つは信頼できる証明書としてローカル証明書ストアにあるはずです。しかし this PDF from 201 によると、この証明書はデフォルトではトラストストアに含まれていません。代わりにEntrustからの古い証明書が含まれています。

したがって、おそらく2つのオプションがあります。

  • 不足している証明書を信頼できるものとしてJavaに追加する
  • または、不足している証明書をWebサーバーのチェーンに追加します。この証明書自体はEntrustからの古い証明書によって署名されており、この古い証明書はおそらくJavaトラストストアに含まれているため、これでうまくいく可能性があります。残念ながら、これはOpenSSLベースのクライアントで here に説明されているように問題を引き起こす可能性があります。
1
Steffen Ullrich

このタイプのエラーが発生する一般的な理由は、サーバーがハンドシェイク中に完全な証明書チェーンを提供しないためです。これは通常、中間CAがインストールされていない場合に発生します。

0
Stephane