Interstage Application Server J2EE ユーザーズガイド
目次 索引 前ページ次ページ

第3部 EJB編> 第14章 EJBアプリケーションの呼出し方法> 14.7 アプレットのデジタル署名

14.7.1 JDK/JRE1.3系以降(keytool/jarsigner/policytoolを使用した場合)のデジタル署名

 J Business Kitのプラグイン(以降JBKプラグイン)の使用で、JDK/JRE1.3以降を使用する場合のデジタル署名手順を説明します。署名ツールとしてkeytool/jarsigner/policytool(JDKのツール)を使用します。


 JDK/JRE1.3以降の環境で、Portable-ORBをダウンロードしない運用で使用する場合、またはプレインストール型Javaクライアントを使用する場合は、それぞれの環境のJavaライブラリに対しても、policytoolによる権限の設定をしてください。Javaライブラリに対する権限の設定については、“Javaライブラリに対する権限の設定”を参照してください。

備考

 署名ツールの詳細については、JDKのドキュメントを参照してください。J Business Kitをご使用の場合は、Apworksの“J Business Kit オンラインマニュアル”を参照してください。

 デジタル署名は、以下の手順で行います。

(1)鍵のペア(証明書)の作成

 証明書に付加する情報、証明書にアクセスするための別名を指定して鍵のペア(証明書)を作成します。以下の実行例では別名samplesigner、証明書有効期限を365日としています。

  keytool  -genkey -alias samplesigner -dname "cn=samplesigner, ou=JAVA PROJECT, o=FUJITSU, c=JA" 
           -validity 365
    -genkey    :鍵のペア(証明書)の生成を指定
    -alias     :作成する鍵のペア(証明書)にアクセスするために別名を指定
    -dname     :署名者名、組織名、会社名、国名などを指定
    -validity  :証明書の有効期限を指定

 コマンド入力時、キーストアのパスワード入力、作成する鍵のペア(証明書)のパスワード入力が求められます、これらのパスワードは以降のキーストアへのアクセス、および作成した鍵のペア(証明書)へのアクセスで必要です。
 キーストアは鍵のペア(証明書)情報等を管理するデータベースであり、JDK(JRE)インストール時には存在せず、keytoolコマンドの初回実施時に作成されます。
 ここで作成された証明書と各クライアントマシンでインポートする証明書の作成時刻は、同一である必要があります。-dnameオプションに指定した内容が同一でも異なる時刻に作成された証明書は、別の証明書として認識されるため注意してください。

(2)jarアーカイブファイルへの適用

 作成した証明書を使用して、jarアーカイブファイルへデジタル署名を適用します。以下の実行例では(1)で作成した証明書をSample.jarに署名します。

  jarsigner  -signedjar Sample.jar.sig  Sample.jar  samplesigner
    -signedjar   :署名を適用したjarファイルの名前を指定
                  (省略時は署名元jarファイルと同一名)
    Sample.jar   :証明元のjarファイルを指定
    samplesigner :署名を行う証明書の別名を指定

 コマンド入力時、キーストアのパスワード入力、鍵のペア(証明書)のパスワード入力が求められます。(1)で指定したパスワードを指定します。
 jarアーカイブファイルの作成方法はについては、“Javaクラスファイルのアーカイブ”(インストール型Javaライブラリ)/“Javaクラスファイルのアーカイブ”(Portable-ORB)を参照してください。

 同一の署名者で複数のjarアーカイブファイルを作成する場合は、(2)の処理を繰り返してください。

(3)jarアーカイブファイルへの署名適用の確認

 署名を適用したjarアーカイブファイルに正常に署名が実施されていることを確認する場合は以下のコマンドを使用します。

  jarsigner  -verify  Sample.jar.sig
    -verify      :jarアーカイブファイルのデジタル署名の検証を指定
    Sample.jar.sig :デジタル署名の検証を行うjarアーカイブファイルを指定

 正常にデジタル署名が実施されている場合は「jar verified」、また正常にデジタル署名が実施されていない場合は「jar is unsigned.(signatures missing or not parsable)」というメッセージが表示されます。
 デジタル署名が正常に実施されていることを確認した後、jarファイルとして使用するために、拡張子を*.jarに変更してください(例:署名を施す前のSample.jarを削除し、Sample.jar.sigをSample.jarに変名します)。
 詳細なデジタル署名情報を表示する場合は、-verbose/-certsオプションを指定してコマンドを実行してください。

(4)証明書のエクスポート

 アプレットをダウンロードするクライアントマシンにインポートするための証明書のエクスポートを行います。(1)鍵のペア(証明書)の作成で指定した別名を指定します。

  keytool -export -alias samplesigner -file samplesign.cer
    -export    :証明書の取り出しを指定
    -alias     :取り出しを行う証明書の別名を指定
    -file      :取り出した証明書を格納するファイル名を指定

 コマンド入力時、キーストアのパスワード入力が求められます。(1)で指定したパスワードを指定します。

(5)証明書のインポート

 アプレットをダウンロードするクライアントマシンに証明書をインポートします。この作業はクライアントマシンで行います。証明書samplesign.cerを事前にクライアントマシンにコピーしてください。

  keytool -import -alias sampleuser -file samplesign.cer
    -import    :証明書のインポートを指定
    -alias     :インポートする証明書の別名を指定
    -file      :インポートする証明書のファイル名を指定

 コマンド入力時、キーストアのパスワード入力が求められます。これらのパスワードは以降のキーストアへのアクセスで必要です。また、インポートする証明書を信頼するかどうかの入力が求められるので「yes」と入力します。
 コマンド入力時に指定した別名(-aliasで指定した別名)は、以降の操作で、証明書(-fileで指定した証明書)を指定するために必要です。“(6)証明書への権限の設定”で権限を設定する際に、権限を設定する証明書の別名を指定してください。

(6)証明書への権限の設定

 クライアントマシンにインポートした証明書に対して、権限を設定します。権限の設定はpolicytoolコマンドを使用して行います。この作業はクライアントマシンで行います。

 policytoolコマンドは、JDK/JRE1.3系以降に付属しているセキュリティポリシを定義するGUIツールです。
 このコマンド使用して署名されているJavaクラス、および任意の場所に格納されているJavaクラスの権限の設定または変更を行います。policytoolコマンドの設定については、“policytoolコマンドの設定”を参照してください。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005