ホームページ > Java > &#&チュートリアル > HTTPS で Java クライアント証明書を使用するときに javax.net.ssl.SSLHandshakeException を解決するにはどうすればよいですか?

HTTPS で Java クライアント証明書を使用するときに javax.net.ssl.SSLHandshakeException を解決するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-26 06:17:10
オリジナル
335 人が閲覧しました

How to Resolve javax.net.ssl.SSLHandshakeException When Using Java Client Certificates with HTTPS?

HTTPS/SSL 経由の Java クライアント証明書

リモート サーバーとの HTTPS 接続を確立する場合、クライアントを提示する必要があるシナリオがある場合があります。認証用の証明書。これには、サーバーのルート証明書をトラストストアにインポートし、クライアント証明書とそのパスワードを正しく構成する必要があります。

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException を回避するには: PKIX パスの構築に失敗する問題がある場合は、次のコマンドを使用してサーバーのルート証明書をトラストストアにインポートする必要があります。コマンド:

keytool -import -alias gridserver -file gridserver.crt -storepass $PASS -keystore gridserver.keystore
ログイン後にコピー

次に、次のプロパティを設定してキーストアとトラストストアの情報を指定します。

-Djavax.net.ssl.keyStoreType=pkcs12
-Djavax.net.ssl.trustStoreType=jks
-Djavax.net.ssl.keyStore=clientcertificate.p12
-Djavax.net.ssl.trustStore=gridserver.keystore
-Djavax.net.debug=ssl # very verbose debug
-Djavax.net.ssl.keyStorePassword=$PASS
-Djavax.net.ssl.trustStorePassword=$PASS
ログイン後にコピー

この構成では、HttpsURLConnection を作成し、クライアントを処理するための SSLSocketFactory を設定できます。証明書の検証:

SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
URL url = new URL("https://gridserver:3049/cgi-bin/ls.py");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslsocketfactory);
ログイン後にコピー

そこから、HTTPS 接続からの応答を次のように読み取ることができます。希望します。

以上がHTTPS で Java クライアント証明書を使用するときに javax.net.ssl.SSLHandshakeException を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート