ホームページ > Java > &#&チュートリアル > HTTPS/SSL で Java クライアント証明書を正常に使用するにはどうすればよいですか?

HTTPS/SSL で Java クライアント証明書を正常に使用するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-22 12:58:11
オリジナル
913 人が閲覧しました

How to Successfully Use Java Client Certificates with HTTPS/SSL?

HTTPS/SSL 経由の Java クライアント証明書: ウォークスルー

シナリオ

Java を検討する6 アプリケーションは、クライアント証明書を使用してリモート サーバーへの HTTPS 接続を確立しようとします。サーバーは自己署名ルート証明書を使用し、パスワードで保護されたクライアント証明書の提示を義務付けています。

チャレンジ

サーバー ルート証明書とクライアント証明書をデフォルトのキーストアの場合、ハンドシェイクの失敗により接続が失敗します。アプリケーションは、クライアント証明書を効果的に利用するためのガイダンスを求めています。

解決策

解決には、次の 3 つの手順が必要です:

  1. トラストストアへのサーバー証明書のインポート: サーバーの自己署名証明書をインポートする必要がありますkeytool ユーティリティを使用してトラストストアに追加します:

    keytool -import -alias <server_alias> -file <server_cert>.crt -storepass <password> -keystore <truststore_name>.keystore
    ログイン後にコピー
  2. JVM プロパティの構成: 特定の JVM プロパティを設定して、トラストストアとキーストアのパス、パスワード、およびタイプ:

    -Djavax.net.ssl.keyStoreType=pkcs12
    -Djavax.net.ssl.trustStoreType=jks
    -Djavax.net.ssl.keyStore=<client_cert>.p12
    -Djavax.net.ssl.trustStore=<truststore_name>.keystore
    -Djavax.net.debug=ssl
    -Djavax.net.ssl.keyStorePassword=<password>
    -Djavax.net.ssl.trustStorePassword=<password>
    ログイン後にコピー
  3. 更新された接続コード: SSLSocketFactory を使用して HTTPS 接続を確立し、接続の SSL ソケット ファクトリを設定します:

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

    このアプローチは、指定されたクライアントを使用してサーバーに対してクライアントを認証することで問題を解決します。証明書。

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

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