javax.net.ssl.SSLHandshakeException エラーを解決するには? 質問する

javax.net.ssl.SSLHandshakeException エラーを解決するには? 質問する

製品リストを取得するために在庫 API を設定するために VPN に接続しましたが、正常に動作しています。Web サービスから結果を取得したら、UI にバインドします。また、支払いの呼び出し時に Express Checkout を作成するために PayPal をアプリケーションに統合しましたが、このエラーが発生します。バックエンド プロセスにはサーブレットを使用しています。この問題を解決する方法を誰か教えていただけますか?

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

ベストアンサー1

まず、接続しようとしているサーバーから公開証明書を取得する必要があります。これは、サーバー管理者に連絡して証明書を要求するなど、さまざまな方法で行うことができます。OpenSSLを使用してダウンロードするまたは、これは HTTP サーバーであると思われるので、任意のブラウザで接続し、ページのセキュリティ情報を表示して、証明書のコピーを保存します。(Google は、特定のブラウザで何をすべきかを正確に教えてくれるはずです。)

証明書をファイルに保存したら、それを JVM の信頼ストアに追加する必要があります。JRE$JAVA_HOME/jre/lib/security/または$JAVA_HOME/lib/securityJDK の場合は、Java に付属する というファイルがありcacerts、よく知られている認証局の公開証明書が含まれています。新しい証明書をインポートするには、cacerts への書き込み権限を持つユーザーとして keytool を実行します。

keytool -import -file <the cert file> -alias <some meaningful name> -keystore <path to cacerts file>

おそらくパスワードを要求されます。Java に付属しているデフォルトのパスワードは ですchangeit。これを変更する人はほとんどいません。これらの比較的簡単な手順を完了すると、安全な通信が可能になり、正しいサーバーとのみ通信していることが保証されます (サーバーが秘密鍵を失わない限り)。

おすすめ記事