0

Web セキュリティに関連する学術プロジェクトに取り組んでいます。クライアント (ブラウザ) とサーバー側の jsp/サーブレットの間に安全な接続を作成する必要があります。私のサンプル アプリケーションでは、ユーザーからユーザー名とパスワードを取得し、これらの詳細をサーバー側の jsp/サーブレットに送信して、ログイン アカウントが存在するかどうかを確認する単純な html フォームがあります。HTMLフォームデータを保護するために、サーバーに送信する前にクライアントブラウザでデータを暗号化する必要があります。クライアント側の暗号化に Java スクリプトを使用する必要はありません。証明書を使用して安全な接続を実現するよう求められました。

セキュリティに関する私の知識では、クライアントがセキュリティ関連の機能に使用できるように、証明書を作成してクライアントに送信する必要があります。

私は次のクエリで立ち往生しています:

  1. Javaで証明書を作成する方法(サードパーティのツールが必要ですか、または証明書を作成するためのJava APIはありますか)。

  2. クライアントが最初にサーバーからアプリケーションを要求するときに、クライアントに証明書を送信する方法を教えてください。次のようなものがありますか:

    out.println(certificate);
    

    ユーザーがサーバーの URL を使用してサーバーを要求すると、サーバーが証明書を返すようにします。

  3. クライアント側での暗号化に証明書を使用する方法 (クライアント マシンに保存されている証明書のパスをそのタグに指定すると、そのタグが HTML フォーム データを自動的に暗号化するような html タグはありますか?)

上記のクエリについてお役に立てば幸いです。

4

1 に答える 1

0

最後に私は解決策を得ました。上記のシナリオを処理するには、次の手順が必要です。

  1. 使用している Web サーバー (私の場合は tomcat 7) で SSL を有効にする必要があります。

  2. キーストアを作成する必要があります。KeyStore は、生成されたキーが格納される場所です。次のコマンドを使用してキー ストアを生成するには:

    C:\jdk_7\bin> keytool -genkey -keyalg RSA -alias <alias-name> -keystore <location-of-keystore> -validity 999 -keysize 2048
    
  3. その後、「Tomcal インストール ディレクトリ」内にある「server.xml」に次の変更を加える必要があります。次のコードを server.xml に追加します

    <Connector  port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" 
        SSLEnabled="true"
        maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS"
         keystoreFile="E:\keystore\keystore.jks"
        keystorePass="password" />
    

    ここで「password」は、キー ストアの生成中に入力したパスワードです。

  4. 次の URL を使用してアプリケーションにアクセスするだけです。

    https://localhost:8443/application_name
    

    この後、ブラウザーは自動的にユーザーに証明書をインストールするように求めます。

このソリューションは私にとってはうまくいきました。

于 2012-07-17T10:09:48.883 に答える