質問

Advanced Search

Solution ID : SO23056

Last Modified : 07/12/2019

jarsignerでの署名方法

Problem

コードサイニング証明書for Javaを取得しました。

jarsignerでの署名方法を教えてください。

Solution

必ずお読みください

  • 本文書の内容によって生じた結果の影響について、弊社では一切の責任を負いかねますこと予めご了承ください。
  • 本文書は基本的な構成を想定しています。お客様のシステム環境や構成、設定状況などにより、手順や画面表示が変わることがあります。
  • 本文書の手順で動作しない場合やアプリケーション及びツールの仕様及び設定手順等に関する不明な点は、当社ではサポートできませんので、製品のマニュアルをお読みいただくか、開発元にご確認ください。

前提条件

  1. keytoolを使用してCSRを作成している
  2. 署名対象ファイル「.jar」の準備

 

この手順では以下の名称を使っています。

キーストア名 veristore
コードサイニング証明書for Javaエイリアス名 vericert
中間CA証明書エイリアス名 primaryintermediate
クロスルート設定用証明書エイリアス名 secondaryintermediate
コードサイニング証明書for Javaの秘密鍵に対するパスワード kpassword
キーストアに対するパスワード spassword


 

事前準備

発行された証明書と中間証明書をお客様の署名環境に保存します。

  1. コードサイニング証明書for Java

    証明書の発行通知メールの文末に記載されています。
    (-----BEGIN CERTIFICATE-----)から(-----END CERTIFICATE-----)までをテキストに保存します。
    例) 保存ファイル end-entity.txt


     
  2. 中間証明書

    以下の中間証明書をテキストに保存します。
     

 

証明書のインストール

CSRを作成したKeyStore内に、発行された証明書と中間証明書をインストールする必要があります。必ず同一のKeyStoreを指定してください。
(以下の例の場合、veristore)

※以下は実行ディレクトリに必要なファイルがある場合のコマンド例です。

  1. 中間証明書のインストール

    1.1 コードサイニング証明書 中間CA証明書のインストール
    保存したprimaryca.txtファイルがあるフォルダーで以下のコマンドを実行します。
     
     # keytool -import -trustcacerts -alias primaryintermediate -keystore veristore -file primaryca.txt

    ※インポートの際にはKeyStoreのパスワードを入力する必要があります。例では [ spassword ]
    「証明書は、キーストア内にすでに存在します。」と表示される場合は、Yesと入力してください。

    1.2 (必要に応じ)クロスルート設定用 中間CA証明書のインストール
    保存したsecondaryca.txtファイルがあるフォルダーで以下のコマンドを実行します。
     
     # keytool -import -trustcacerts -alias secondaryintermediate -keystore veristore -file secondaryca.txt

    ※インポートの際にはKeyStoreのパスワードを入力する必要があります。例では [ spassword ]
    「証明書は、キーストア内にすでに存在します。」と表示される場合は、Yesと入力してください。

  2. コードサイニング証明書for Javaのインストール

    保存したend-entity.txtファイルがあるフォルダーで以下のコマンドを実行します。
     
     # keytool -import -trustcacerts -alias vericert -keystore veristore -file end-entity.txt
    キーストアのパスワード:spassword
    vericertの鍵パスワードを入力して下さい:kpassword

  3. インストール結果の確認

    以下のコマンドでKeyStoreにインストールされた内容を確認できます。
     # keytool -list -v -keystore veristore
    キーストアのパスワードを入力してください:spassword

  4. キーペアファイルのバックアップ

    ハードウェア障害などに備え、Keystoreファイルをバックアップしておきます。
    デフォルトではユーザのホームディレクトリに作成されますが、お客様の環境により異なります。

■署名作業

署名にはJDK付属のツール(jarsigner)を使用します。

※以下は実行ディレクトリに必要なファイルがある場合のコマンド例です。

  1. 対象となるJavaアプレットが署名されていないことを確認
    JARファイル(例 JavaApplet.jar)があるフォルダーで以下のコマンドを実行します。
     
     jarsigner -verify -verbose -certs JavaApplet.jar

  2. 対象となるJavaアプレットへの署名
    一般的な署名コマンドは以下の通りです。
     
     jarsigner -keystore

    具体的なコマンド例
     
     jarsigner -keystore veristore JavaApplet.jar vericert

  3. 対象となるJavaアプレットに正しく署名されたことを確認
     
     jarsigner -verify -verbose -certs JavaApplet.jar


タイムスタンプを追加する場合は、以下のサイト(米国シマンテック)を確認してください。

SO15502 - Timestamp JAR file with Symantec Sun Java Certificate using JDK 1.6.0


JDKに関する詳しい使い方などは、オラクル社のWebサイトを確認ください。