javax.net.ssl.SSLHandshakeExceptionの解決:sun.security.validator.ValidatorException:PKIXパスの構築に失敗しましたエラー?
編集:-私のブログで質問と受け入れられた回答をより見やすい方法でフォーマットしようとしました これが元の問題です。 このエラーが発生しています: 詳細メッセージsun.security.validator.ValidatorException:PKIXパスの構築に失敗しました: sun.security.provider.certpath.SunCertPathBuilderException:要求されたターゲットへの有効な証明書パスが見つかりません 原因javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIXパスの構築に失敗しました:sun.security.provider.certpath.SunCertPathBuilderException:要求されたターゲットへの有効な証明書パスが見つかりません Tomcat 6をWebサーバーとして使用しています。2つのHTTPS Webアプリケーションが異なるTomcatの異なるポートにインストールされていますが、同じマシン上にあります。言ってやるApp1(port 8443)と App2(port 443)。App1に接続しApp2ます。にApp1接続するApp2と、上記のエラーが発生します。これは非常に一般的なエラーであるため、さまざまなフォーラムやサイトで多くの解決策を見つけました。私はserver.xml両方のTomcatの以下のエントリを持っています: keystoreFile="c:/.keystore" keystorePass="changeit" すべてのサイトが、app2によって提供された証明書がapp1 jvmの信頼できるストアにないという同じ理由を述べています。これは、IEブラウザーで同じURLにアクセスしようとしたときにも当てはまるようです。これは機能します(温暖化により、このWebサイトのセキュリティ証明書に問題があります。ここでは、このWebサイトに進みます)。しかし、同じURLがJavaクライアントによってヒットされると(私の場合)、上記のエラーが発生します。したがって、トラストストアに配置するために、次の3つのオプションを試しました。 オプション1 System.setProperty("javax.net.ssl.trustStore", "C:/.keystore"); System.setProperty("javax.net.ssl.trustStorePassword", "changeit"); Option2 環境変数の以下の設定 CATALINA_OPTS -- param name -Djavax.net.ssl.trustStore=C:\.keystore -Djavax.net.ssl.trustStorePassword=changeit ---param value Option3 環境変数の以下の設定 JAVA_OPTS -- param name -Djavax.net.ssl.trustStore=C:\.keystore -Djavax.net.ssl.trustStorePassword=changeit ---param value しかし、何もうまくいきませんでした。 「Apache HttpClientを使用して無効なSSL証明書を処理 する方法」で提案されているJavaアプローチを実行すると、最終的に何が機能しますか?Pascal Thiventによって、つまりプログラムInstallCertを実行します。 しかし、このアプローチはdevboxのセットアップには問題ありませんが、実稼働環境では使用できません。 3つのアプローチは、上記の理由を私は疑問に思って私は同じ値を記載している時に仕事をしませんでしたserver.xmlのapp2設定でトラストストアに、サーバーと同じ値 System.setProperty("javax.net.ssl.trustStore", "C:/.keystore") …