1

Java 7(Windows 7)でHttpsURLConnectionを使用して、リモートWebサーバーに接続し、POSTリクエストを送信しようとしています。証明書を信頼しない(自己署名)という事実を除いて、すべてが機能しているようです。

Chromeを介して証明書をエクスポートしてから、次のように証明書をキーストアにインポートしました。

keytool -import -file mysslcertificate.cer

を実行すると、証明書がありますkeytool -list

証明書をインポートした後に(gradleまたはeclipseを使用して)実行しようとすると、次の例外が発生します。

javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIXパスの構築に失敗しました:sun.security.provider.certpath.SunCertPathBuilderException:要求されたターゲットへの有効な認証パスが見つかりません

原因:sun.security.validator.ValidatorException:PKIXパスの構築に失敗しました:sun.security.provider.certpath.SunCertPathBuilderException:要求されたターゲットへの有効な認証パスが見つかりません

原因:sun.security.provider.certpath.SunCertPathBuilderException:要求されたターゲットへの有効な認証パスが見つかりません

誰かヒントはありますか?

4

1 に答える 1

2

ほとんどの場合、証明書をインポートしたキーストアを Java が使用していません。キーストアの場所を Java に指示するには、次のコマンド ライン引数を使用します。

java -Djavax.net.ssl.trustStore=<path to keystore file> -Djavax.net.ssl.trustStorePassword=<keystore password>

Eclipse と Gradle には、キーストアの場所を Java に転送するための特定の設定がある場合があります。

以下も参照してください。

于 2013-03-22T10:29:25.930 に答える